Добавить строку в отсортированную таблицу с помощью jQuery - PullRequest
3 голосов
/ 08 ноября 2011

Как я могу добавить строку в динамически сгенерированную таблицу, но иметь идентификатор числового упорядоченного идентификатора tr?

Например:

<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>

Как добавить tr сидентификатор 5145, чтобы он был ниже 5143, но выше 5149?Я бы хотел решение, которое не включает плагин, если это возможно

Ответы [ 3 ]

4 голосов
/ 08 ноября 2011

Я бы отсортировал ... но не знаю, если это эффективно или нет

//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]) 

, например

http://jsfiddle.net/Dq37V/

2 голосов
/ 08 ноября 2011

Вы можете пройтись по tr и сравнить; если он больше текущего идентификатора, добавьте его.

Пример:

$('#myDataTable tr').each(function(index, Element) {
    if (5145 > Number($(Element).attr('id'))) {
        $(Element).after('<tr id="5145"><td>Data Cell 1</td></tr>');
    }
});
1 голос
/ 08 ноября 2011

Вы можете использовать $('#myDataTable tr').each(function() { .. } для просмотра таблицы tr, тогда, если вы обнаружите совпадение, просто используйте jquery после функции, чтобы добавить новую строку сразу после правого tr `

...