Как выбрать листовые элементы вложенного списка с помощью jQuery - PullRequest
3 голосов
/ 11 января 2012

Мне нужно выбрать только элементы листовой ссылки во вложенном списке
Пример HTML

<ul>
    <li>folder
        <ul>
            <li>><a class="t-link" href="">folder</a>
                <ul>
                    <li><a class="t-link" href="">leaf 1</a><li>
                    <li><a class="t-link" href="">leaf 2</a><li>
                </ul>
            </li>            
        </ul>
    </li>
</ul>

Так что в этом примере я хочу выбрать две листовые ссылки, но не ссылку на папку Папки могут быть вложены бесконечно глубоко (но обычно только 2-3 уровня). Я считаю, что мне нужно искать элементы li, которые не содержат элементов ul, но я не вижу, как вы это делаете в jQuery

Ответы [ 3 ]

8 голосов
/ 11 января 2012

Это выберет конечные узлы, которые не имеют других неупорядоченных списков, как дочерние:

$("li:not(:has(ul))")

Quick jsFiddle с примером с цветовой кодировкой: http://jsfiddle.net/rFuUc/

0 голосов
/ 11 января 2012
$('.t-link').parent().find(' ul .t-link')

должно работать.

0 голосов
/ 11 января 2012

попробуй

$('li').each(function(){
    if($(this).children('ul').size() == 0)
    {
        alert($(this).find('a').text());        
    }
});

DEMO

...