2

假设我有ul一个系列li

我将其存储ul为 JQuery 变量,就像这样var myUl = $("ul")

现在我想选择所有li包含在myUl.

现在,我意识到在这个特定的例子中我可以做到,$(myUl).children();但我想知道我怎么能做这样的事情:$(myUl + "li")并且让它工作?组合变量和其他文本的语法是什么?

还是我必须创建一个新变量来表示var newUl = $("ul li")

4

3 回答 3

6

您需要在选择器中myUl作为上下文传递。

$("li", myUl)

FIDDLE示例

引用文档

在内部,选择器上下文是用 .find() 方法实现的,所以 $( "span", this ) 等价于 $( this ).find( "span" )。

换句话说,将上下文传递给选择器与做myUl.find('li')

于 2013-04-30T17:34:34.973 回答
6
myUl.find("li");

或者

myUl.children("li");

find将获得所有后代,而children只是直接孩子。

于 2013-04-30T17:16:49.217 回答
1

所以我刚刚了解到您实际上可以以这种方式使用变量:

http://jsfiddle.net/VMM4x/

<ul id="myUl">
    <li>hi</li>
    <li>there</li>
</ul

var ul = $('#myUl');
var li = $('li', ul);
li.each(function() {
    alert($(this).html());
});

var ul需要明确的是,这会在对象下搜索 li 标签。

于 2013-04-30T17:29:39.223 回答