Проблема обхода jQuery - PullRequest
1 голос
/ 22 мая 2009

У меня есть потенциально бесконечно вложенное дерево ol > li

учитывая li в дереве, мне нужно применить некоторую функцию ко всем другим li s ниже заданного li, за исключением текущего ol. Как пример:

например:

<ol>
    <li>
        Do not apply to me
        <ol>
            <li>Do not apply to me</li>
            <li>Do not apply to me</li>
        </ol> 
    </li>
    <li>
        Do not apply to me
        <ol>
            <li id='given'>I am the "given" li</li>  <------------- you are here
            <li>Do not apply to me</li>
            <li>
                Do not apply to me
                <ol>
                    <li>Do not apply to me</li>
                    <li>Do not apply to me</li>
                </ol> 
            </li>
        </ol> 
    </li>
    <li>
        Apply to me
    </li>
    <li>
        Apply to me
        <ol>
            <li>Apply to me</li>
            <li>
                Apply to me
                <ol>
                    <li>Apply to me</li>
                    <li>Apply to me</li>
                </ol> 
            </li>
        </ol> 
    </li>
</ol> 

Какой самый элегантный способ добиться этого?

Спасибо

Ответы [ 2 ]

1 голос
/ 22 мая 2009

@ Ответ Гордона будет работать с данным примером, но если сразу после OL есть другой OL, который содержит #given, он не будет работать.

$("#given").parents("ol").nextAll("ol").find("li").each(function() {
    // function
});
$("#given").parents("li").nextAll("li").find("li").andSelf().each(function() {
    //function
});

Это сработает, но, возможно, есть более элегантный способ сделать это.

1 голос
/ 22 мая 2009

Вы можете написать:

   $("#given").parents("li:first").nextAll("li").find("li").andSelf();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...