Выбор нодов с помощью jQuery?

Есть конструкция вида:

<br>
<table><br>
<tr><br>
<td class="tree-node">...</td><br>
</tr><br>
<tr><br>
<td class="tree-sub-node">...</td><br>
</tr><br>
<tr><br>
<td class="tree-sub-node">...</td><br>
</tr><br>
<tr><br>
<td class="tree-sub-node">...</td><br>
</tr><br>
<tr><br>
<td class="tree-node">...</td><br>
</tr><br>
<tr><br>
<td class="tree-sub-node">...</td><br>
</tr><br>
</table><br>


Очевидно, кто-то запихал дерево в таблицу :)

Мне нужно создать древовидный объект по этому коду.

Как с помощью jquery одной строкой (ну или с минимумом кода) выбрать элементы с классом tree-sub-node, которые находятся между определенной tree-node и до следующего элемента с классом tree-node?
  • Вопрос задан
  • 2438 просмотров
Пригласить эксперта
Ответы на вопрос 2
taliban
@taliban
php программист
Простейший пример:
$node = $('.tree-node:first');
$subnodes = [];
while( $node = $node->next('.tree-sub-node') )
{
    $subnodes.push( $node );
}
Ответ написан
sdevalex
@sdevalex
У меня только одна идея по этому поводу…
$(function(){
    var i = 0;
    
    $('td').each(function(){
        $(this).hasClass('tree-sub-node') || ++i;
        $(this).attr('data-index', i);
    });
    
    $('td.tree-sub-node[data-index=2]').css('background', '#f00');
});

jsfiddle.net/7jpG4/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы