为什么$(“ul:first”)。find(“li”)工作但是$(“ul”)[0] .find(“li”)在jQuery中不起作用?

时间:2013-08-01 03:55:54

标签: jquery dom

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

有没有人知道为什么$("ul")[0]不能直接用于find

5 个答案:

答案 0 :(得分:5)

那是对的; jQuery对象充当DOM元素数组的扩展。如果通过索引访问其中任何一个,则会获得原始DOM对象,而不是另一个jQuery对象。如果要仅为对象表示的其中一个元素访问jQuery对象,请使用eq

$('ul').eq(0).find('li')

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

你可以这样使用

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

$("ul").eq(0)


$("ul")[0] is a DOM element

答案 4 :(得分:0)

你应该使用$(“ul”)。eq(0)而不是$(“ul”)[0]