2015-08-06 2 views
2

я следующий макет HTML таблицы:Как получить идентификатор тр меньше, чем число

<table border="1" id="staff"> 
    <tr> 
    <th>Company</th> 
    <th>Contact</th> 
    <th>Country</th> 
    </tr> 
    <tr id="1"> 
    <td>Alfreds Futterkiste</td> 
    <td>Maria Anders</td> 
    <td>Germany</td> 
    </tr> 
    <tr id="2"> 
    <td>Berglunds snabbköp</td> 
    <td>Christina Berglund</td> 
    <td>Sweden</td> 
    </tr> 
    <tr id="5"> 
    <td>Centro comercial Moctezuma</td> 
    <td>Francisco Chang</td> 
    <td>Mexico</td> 
    </tr> 
    <tr id="8"> 
    <td>Ernst Handel</td> 
    <td>Roland Mendel</td> 
    <td>Austria</td> 
    </tr> 
    <tr id="9"> 
    <td>Island Trading</td> 
    <td>Helen Bennett</td> 
    <td>UK</td> 
    </tr> 
    <tr id="12"> 
    <td>Königlich Essen</td> 
    <td>Philip Cramer</td> 
    <td>Germany</td> 
    </tr> 
    <tr id="13"> 
    <td>Laughing Bacchus Winecellars</td> 
    <td>Yoshi Tannamuri</td> 
    <td>Canada</td> 
    </tr> 
<tr id="15"> 
    <td>Magazzini Alimentari Riuniti</td> 
    <td>Giovanni Rovelli</td> 
    <td>Italy</td> 
    </tr> 
    <tr id="16"> 
    <td>North/South</td> 
    <td>Simon Crowther</td> 
    <td>UK</td> 
    </tr> 
</table> 

Теперь я хочу, чтобы вставить новый тр по JQuery. По этой причине идентификатор будет сгенерирован с обрабатывающей php-страницы. Пусть id равно 11. Поэтому мне нужно вставить его после tr, где id меньше 11. Здесь tr - с идентификатором 9. Проблема в том, как я могу найти closet tr, id которого меньше, чем сгенерированный id (здесь 11)?

ответ

7

Вы можете использовать filter() найти tr элементы с id меньше, чем требуется, а затем использовать last(), чтобы получить самый высокий из них, и, наконец, after() добавить HTML новой строки таблицы. Попробуйте это:

var rank = 11; // calculate this as needed... 
var newRow = '<tr><td>The new row HTML...</td></tr>'; 

$('#staff tr').filter(function() { 
    return this.id < rank; 
}).last().after(newRow); 

Example fiddle

+0

Спасибо, это работает, но только после того, как добавить функцию фильтра к любому событию. Но я хочу добавить новую строку после получения данных обратного вызова из jquery post. Можете ли вы сказать мне, как я могу найти только идентификатор tr в var, который меньше, чем сгенерированный id (здесь 9) (ваш конечный результат - добавленная строка, но я хочу просто получить идентификатор, который меньше, чем сгенерированный идентификатор)? –

+0

Я не уверен, что вы имеете в виду. Вероятно, лучше всего, если вы начнете новый вопрос для этого, поскольку это кажется более широкой темой, чем этот вопрос. –

+0

См. Мой вопрос, который я только что написал в этой теме. –

Смежные вопросы