Я еще не совсем ниндзя-селектор jQuery, поэтому я спрашиваю об этом в надежде, что кто-нибудь сможет сделать на него удар.
Я использую шаблоны jQuery для создания таблицы со строками на основена вложенных словарях (они вложены в 5 слоев или около того).Он основан на данных, касающихся организационной структуры и людей в каждой группе.Что я хочу сделать, основываясь на приведенном ниже частичном коде, так это - для каждой строки «команды» - получить ряд «людей», принадлежащих этой команде.Вот то, что у меня есть, с отступом для удобства чтения.
<tr class="division">...</tr>
<tr class="team">...</tr>
<tr class="person">...</tr>
<tr class="person">...</tr>
<tr class="team">...</tr>
<tr class="person">...</tr>
<tr class="person">...</tr>
<tr class="person">...</tr>
<tr class="division">...</tr>
<tr class="team">...</tr>
Теперь у меня есть селектор jQuery, который получает все class="team"
строк, а затем для каждой строки я пытаюсьнайти селектор для получения каждой последующей строки class="person"
до следующей строки, не являющейся person
.Я не могу понять это правильно. Нужно ли что-то использовать вместо метода .nextAll()
?
$('table tr.team').each(function () {
var personRows = $(this).nextUntil('tr.team');
console.log('row count: ' + personRows.length);
});
Пока я подключаюсь к консоли, поэтому вывод консоли для HTML выше должен совпадатьчто-то вроде ...
> row count: 2
> row count: 3
К сожалению, из-за этой строки класса "division"
я получаю нечто большее.
> row count: 2
> row count: 4
Я имеюя ломал голову, пытаясь просмотреть API, чтобы получить то, что я хочу, но я не могу получить желаемый эффект.Есть идеи?Какие-нибудь элегантные решения?Должен ли я где-нибудь добавить предложение if
, чтобы определить, является ли строка строкой, которую я хочу включить в свой селектор?