gpt4 book ai didi

javascript - 用js对html表进行子排序

转载 作者:行者123 更新时间:2023-12-02 23:47:56 25 4
gpt4 key购买 nike

我已经对我的 html 表进行了排序,并且我想做一个子排序。似乎无法弄清楚我的代码出了什么问题,已经被困在这里一段时间了。我正在尝试对第 4 列上的表进行排序,然后如果有任何相同的值,则按 id 对它们进行排序

let table = document.querySelector('tbody')
function sort() {

let tr = table.children;
let test1 = [...tr]
.sort((a, b) => parseInt(b.children[3].innerHTML) - parseInt(a.children[3].innerHTML))
.map(el => table.append(el));

let test2 = [...tr]
.sort((a, b) => {
if (a.children[3].innerHTML === b.children[3].innerHTML)
return parseInt(a.children[0].innerHTML) - parseInt(b.children[0].innerHTML)
}
})
.map(el => table.append(el));

};
==HTML==
<table class="table">
<thead>
<tr class='table_row'>
<th>id</th>
<th>header2</th>
<th>header3</th>
<th>header4</th>
</tr>
</thead>
<tbody>
<tr>
<td>5</td>
<td>data1</td>
<td>jone</td>
<td>170</td>
</tr>
<tr>
<td>1</td>
<td>data2</td>
<td>josh</td>
<td>170</td>
</tr>
<tr>
<td>2</td>
<td>data3</td>
<td>adrian</td>
<td>270</td>
</tr>
<tr>
<td>8</td>
<td>data4</td>
<td>merry</td>
<td>70</td>
</tr>
</tbody>
</table>

最佳答案

您需要在同一个排序函数中进行这两个属性检查。如果您在另一个排序后调用一个排序,您最终将重新排序您的列表,并且原始排序不会产生任何影响。如果你仔细想想,这是有道理的。一些你想要的伪代码。还有更紧凑/优雅的方式,但这说明了你会做什么。如果您了解做两个,那么您可以做三个等等。

function sort(a,b){
const firstPropCompare = a.first - b.first;
If(firstPropCompare != 0) return firstPropCompare;
const secondCompare = a.second - b.second;
return secondCompare;
}

关于javascript - 用js对html表进行子排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com