少し醜いですが、$("ul")[0]
私が使用すると機能するので、それはjQueryオブジェクトではないということですか。$($("ul")[0]).find("li")
直接$("ul")[0]
使用できない理由を知っている人はいますか?find
それは正しい; jQuery オブジェクトは、DOM 要素の配列の拡張として機能します。それらのいずれかにインデックスでアクセスすると、別の jQuery オブジェクトではなく、生の DOM オブジェクトが取得されます。オブジェクトが表す要素の 1 つだけの jQuery オブジェクトにアクセスする場合は、次を使用しますeq
。
$('ul').eq(0).find('li')
あなたは正しいです -$("ul")[0]
はjQueryオブジェクトではありません。これは DOM ノード (HTMLUListElement
正確には ) です。
これが機能する理由$($("ul")[0]).find("li")
は、jQuery オブジェクトをパラメータとして関数に渡すことで、DOM ノードから jQuery オブジェクトを構築できるから$
です。$("<ul>")
たとえば、ul
ノードを作成し、それを jQuery オブジェクトにラップします。
$("ul:eq(0)")
または$("ul").eq(0)
代わりに使用できます