0

这是否意味着$("ul")[0]不是 jQuery 对象,因为它在我使用时可以工作$($("ul")[0]).find("li"),尽管它看起来有点难看。

有谁知道为什么$("ul")[0]不能find直接习惯?

4

5 回答 5

5

这是正确的; jQuery 对象充当 DOM 元素数组的扩展。如果您通过索引访问它们中的任何一个,您将获得一个原始 DOM 对象,而不是另一个 jQuery 对象。如果您只想访问 jQuery 对象以获取对象所代表的元素之一,请使用eq

$('ul').eq(0).find('li')
于 2013-08-01T03:58:55.147 回答
1

你是对的——$("ul")[0]不是 jQuery 对象。它是一个 DOM 节点(HTMLUListElement准确地说是一个 DOM 节点)。

有效的原因$($("ul")[0]).find("li")是您可以从 DOM 节点构造一个 jQuery 对象,方法是将其作为参数传递给$函数。$("<ul>"),例如,将创建一个ul节点并将其包装在一个 jQuery 对象中。

于 2013-08-01T03:58:52.257 回答
1

你可以使用$("ul:eq(0)")or$("ul").eq(0)代替

于 2013-08-01T03:59:08.887 回答
1

你可以这样使用

$("ul").index(0);

或者

$("ul").eq(0)


$("ul")[0] is a DOM element
于 2013-08-01T04:04:34.273 回答
0

您应该使用 $("ul").eq(0) 而不是 $("ul")[0]

于 2013-08-01T04:00:55.610 回答