我正在使用这种jQuery表排序
,但我不明白它是如何工作的
$('th').click(function(){
var table = $(this).parents('table').eq(0)
var rows = table.find('tr:gt(0)').toArray().sort(comparer($(this).index()))
this.asc = !this.asc
if (!this.asc){rows = rows.reverse()}
for (var i = 0; i < rows.length; i++){table.append(rows[i])}
})
function comparer(index) {
return function(a, b) {
var valA = getCellValue(a, index), valB = getCellValue(b, index)
return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB)
}
}
function getCellValue(row, index){ return $(row).children('td').eq(index).html() }
因此,它需要全部tr
,对它们进行排序,然后比append
。但是,它在哪里去除旧的未分类的东西tr
?
它只是append
,但不是remove
。我在这里想念的是什么?
DOM元素一次只能位于一个位置。当您将现有元素附加到DOM中的新位置时,它不会复制它,而是将元素移到新位置,从而将其从旧位置移除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句