这是否意味着$("ul")[0]
不是 jQuery 对象,因为它在我使用时可以工作$($("ul")[0]).find("li")
,尽管它看起来有点难看。
有谁知道为什么$("ul")[0]
不能find
直接习惯?
这是正确的; jQuery 对象充当 DOM 元素数组的扩展。如果您通过索引访问它们中的任何一个,您将获得一个原始 DOM 对象,而不是另一个 jQuery 对象。如果您只想访问 jQuery 对象以获取对象所代表的元素之一,请使用eq
:
$('ul').eq(0).find('li')
你是对的——$("ul")[0]
不是 jQuery 对象。它是一个 DOM 节点(HTMLUListElement
准确地说是一个 DOM 节点)。
有效的原因$($("ul")[0]).find("li")
是您可以从 DOM 节点构造一个 jQuery 对象,方法是将其作为参数传递给$
函数。$("<ul>")
,例如,将创建一个ul
节点并将其包装在一个 jQuery 对象中。
你可以使用$("ul:eq(0)")
or$("ul").eq(0)
代替
你可以这样使用
$("ul").index(0);
或者
$("ul").eq(0)
$("ul")[0] is a DOM element
您应该使用 $("ul").eq(0) 而不是 $("ul")[0]