使用jQuery在排序表中附加一行

时间:2011-11-07 22:36:37

标签: jquery html-table tablesorter

如何在动态生成的表中添加一行,但是以数字方式排序tr的id?

例如:

<table id="myDataTable">
<tr id="5143">
 <td>Data Cell 1</td>
 <td>Data Cell 2</td>
</tr>
<tr id="5144">
 <td>Data Cell 1</td>
 <td>Data Cell 2</td>
</tr>
<tr id="5149">
 <td>Data Cell 1</td>
 <td>Data Cell 2</td>
</tr>
<tr id="5150">
 <td>Data Cell 1</td>
 <td>Data Cell 2</td>
</tr>
</table>

如何添加id为5145的tr,使其低于5143但高于5149?我想要一个不涉及插件的解决方案,如果可能的话

3 个答案:

答案 0 :(得分:4)

我会对它进行排序......但是,如果这是有效的,那就是idk

//arr is an array of the row id's
//row is the row being inserted
idx = arr.sort().indexOf(row.id) - 1;
$(row).insertAfter($("#myDataTable tr")[idx]) 

e.g。

http://jsfiddle.net/Dq37V/

答案 1 :(得分:2)

你可以遍历tr并进行比较;如果它比当前id大,那么添加它。

示例:

$('#myDataTable tr').each(function(index, Element) {
    if (5145 > Number($(Element).attr('id'))) {
        $(Element).after('<tr id="5145"><td>Data Cell 1</td></tr>');
    }
});

答案 2 :(得分:1)

您可以使用$('#myDataTable tr').each(function() { .. } 如果你发现匹配只是在函数之后使用jquery来在右tr之后添加新行 `