Javascript JS自定义基于文本内容对表进行排序
我已经在这方面工作了很长时间,但取得了成功。我有一个生成的表,我需要根据textContent重新构建和排序 初始表格exJavascript JS自定义基于文本内容对表进行排序,javascript,sorting,Javascript,Sorting,我已经在这方面工作了很长时间,但取得了成功。我有一个生成的表,我需要根据textContent重新构建和排序 初始表格ex <table> <thead> <tr><th>Rank</th></tr> <tr><th>ID</th></tr> <tr><th>Pts</th></tr> </thead> <tb
<table>
<thead>
<tr><th>Rank</th></tr>
<tr><th>ID</th></tr>
<tr><th>Pts</th></tr>
</thead>
<tbody>
<tr><td>雙黑鑽石合作夥伴</td></tr>
<tr><td>黃金合作夥伴</td></tr>
<tr><td>黑鑽石合作夥伴</td></tr>
</tbody>
</html>
我想基于字符串比较构建一个新表。我可以用数组(正确的顺序)比较表中的每个字符串,但是当我创建新表时,顺序不会改变
感谢您的反馈。泰 你所做的是相反的,实际上你应该先循环
列
数组,然后循环tr
数组,因为tr
依赖于列
(位置信息),而不是相反
for(l = 0; l < ranks.length; l++){
for (i = 0; i < tr.length; i++){
let txt = tr[i].children[0].querySelector('a').textContent;
if( ranks.indexOf(txt) == 0 ){
var newIndex = ranks.indexOf(txt);
table.appendChild(tr[i]);
ranks.shift(); // pop the top item off ranks array
}
}
}
for(l=0;l
下面是它的工作原理
在列上循环-->在tr上循环
在每个内部循环迭代(oftr
)中,检查i
thtr
项是否与列组
数组第一个位置的文本匹配
如果是,请将其粘贴到
中,并从列中删除最上面的项
(这样您可以在后续循环中使用相同的逻辑)您是否可以共享您现有的JS,让我们了解您当前如何尝试重新绘制表?
for(l = 0; l < ranks.length; l++){
for (i = 0; i < tr.length; i++){
let txt = tr[i].children[0].querySelector('a').textContent;
if( ranks.indexOf(txt) == 0 ){
var newIndex = ranks.indexOf(txt);
table.appendChild(tr[i]);
ranks.shift(); // pop the top item off ranks array
}
}
}