我有Javascript从Web API提取页面中的数据。为什么不是jQuery驱动的表格排序工作?
在部分伪代码,这就是:
for each page
ajax (url+pageid, function (result)
{
for each row of data
tbody_domnode .appendChild (create_row (row));
sort_table (tbody_domnode, sort_func);
}
function create_row (row)
{
var tr = document .createElement ('tr');
tr .timestamp = row .timestamp; // miliseconds in UNIX epoch
tr .title = tr .timestamp; // for debugging
...
return tr;
}
那多的作品很好,除了sort_table,这是代码,我已经适应从另一个问题在这里。我是jQuery的新手,所以有几个方面,我不明白。
在任何情况下,它都可以使用几乎可以使用,但通过将鼠标悬停在表格行上,某些时间戳(如标题元素所示)出现故障。这是完整的排序代码。
function sort_table_rows (tbody, sort_function)
{
var rows = $("tr", tbody);
rows .sort (sort_function);
rows .each (function (index, row)
{
$(rows) .append (row);
});
}
function sort_func (a, b)
{
return a .timestamp - b .timestamp;
}
我是否正确使用jQuery函数对tbody_domnode中的tr节点进行排序?或者我应该寻找其他地方的错误?
很多错码;很难知道从哪里开始。 :) jQuery对象(比如'rows'变量)在任何有用的意义上都不是真正的数组。所以像这样排序是不可行的。也许它有效,可能不会。然后接近结束时,当你想追加一个jQuery对象时,你可以追加整个事物,不需要循环。在jQuery中,jQuery对象是一个jQuery对象,无论它包含一个元素还是多个元素。但在这种情况下,你基本上是将行附加到自己的行列,这是疯狂的。 –
哦....凯。谢谢。知道一个正确的做法的例子吗? – spraff