这是否意味着$("ul")[0]
不是jQuery对象,因为它在我使用$($("ul")[0]).find("li")
时起作用,尽管它看起来有点难看。
有没有人知道为什么$("ul")[0]
不能直接用于find
?
答案 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]