少し醜いですが、$("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)代わりに使用できます