【发布时间】:2014-07-10 08:28:58
【问题描述】:
我的问题与找到的here 类似,但我只想按字符串排序。 假设我有以下 HTML。
<tbody>
<tr class="finance" data-order="1">
<td>John Smith</td>
<td>Finance</td>
</tr>
<tr class="marketing" data-order="2">
<td>Jane Doe</td>
<td>Marketing</td>
</tr>
<tr class="maintenance" data-order="3">
<td>Gary Ryan</td>
<td>Maintenance</td>
</tr>
<tr class="dataEntry" data-order="4">
<td>Damon Watts</td>
<td>Data Entry</td>
</tr>
<tr class="dataEntry" data-order="5">
<td>Ben Young</td>
<td>Data Entry</td>
</tr>
<tr class="maintenance" data-order="6">
<td>Calvin Lewis</td>
<td>Maintenance</td>
</tr>
</tbody>
如何按第二个 td 升序或降序排序?现在我有这样的东西:
//Ascending Order
var tableRows = new Array();
$("tbody tr").each(function(){
tableRows.push(this);
});
console.log(tableRows);
tableRows.sort(function(a, b){
return( //not sure what to do here)
}
【问题讨论】:
-
这取决于您是否需要区域感知比较。
-
我认为这行不通:
tableRows.push(this);因为this绑定到全局对象。 -
@iaacp,我的意思是这取决于简单比较是否足够,或者您是否必须使用localeCompare()。
-
@linstantnoodles,不在回调中传递给
each(),没有。 -
这更像是一个回避,但在 JavaScript 中将数组声明为 [] 比使用 new Array() 更有效
标签: javascript jquery arrays sorting html-table