jQuery选择ul中的所有后代li?

Rog*_*son 0 javascript jquery jquery-selectors

如果我有一个分层的UL/LI列表,是否可以使用JQuery从根UL获取所有后代LI?

目前我在UL.children('li')内进行递归.每个(...)

(function foo($ul) {
    $ul.children("li").each(function () {
        var $li = $(this);
        tabMap[$li.find('a').attr('href')] = $li;
        $li.children("ul").each(function () {
            foo($(this));
        });
    });
})($ul);
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但如果有可能一次性这样做,我会很高兴.

此外,是否可以为父母做同样的事情?例如,从另一个LI找到LI类型的所有父母,祖父母,祖父*?

Bar*_*mar 5

您可以通过以下方式获得所有后代UL元素.find():

$ul.find("li")
Run Code Online (Sandbox Code Playgroud)

你可以得到所有的祖先.parents():

$li.parents("li");
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到所有jQuery树遍历方法.