jQuery后代选择

时间:2013-10-12 21:12:48

标签: javascript jquery html-lists

我想选择我的UL的所有列表项。

UL位于名为ListBox的变量中(ListBox = $('#MyList'))

我使用了ListBox.children(' li')但并非所有列表项都是列表的直接子项。其中一些是列表中的div。

我可以尝试$(' #MyList li')但我想使用ListBox变量

2 个答案:

答案 0 :(得分:1)

尝试使用ListBox.find('li');

  

.find()方法允许我们在DOM树中搜索这些元素的后代,并从匹配元素构造一个新的jQuery对象。

答案 1 :(得分:0)

li是唯一可以有效包含在ul中的元素。如果您的标记是这样的,那么它是invalid并且应该更改:

<ul id="MyList">
    <div>
        <li></li>
    </div>
</ul>

但是,如果您的标记更像是这样:

<ul id="MyList">
    <li>
        <div>
            <ul>
                <li></li>
            </ul>
        </div>
    </li>
</ul>

然后您只需使用jQuery's find() method

var ListBox = $('#MyList');
ListBox.find('li');

请注意,find()适用于第一个示例,但您需要修复HTML以使其在所有设备上都有效且可访问。因此,您最终可能只需要children()