jqueryで[0]を介して選択しても、視覚効果が機能しないのはなぜですか?
$("p")[0].slideUp(); /* it does not work*/
$("p").eq(0).slideUp(); /* it works */
前述のように、最初のpを選択する方法は他にもいくつかありますが、上記のコードが機能しない理由を知りたいと思っています...
前もって感謝します、
jqueryで[0]を介して選択しても、視覚効果が機能しないのはなぜですか?
$("p")[0].slideUp(); /* it does not work*/
$("p").eq(0).slideUp(); /* it works */
前述のように、最初のpを選択する方法は他にもいくつかありますが、上記のコードが機能しない理由を知りたいと思っています...
前もって感謝します、
.slideUp()はjQueryメソッドであり、jQueryオブジェクトで機能します。
$("p").eq(0)メソッドを持つjQueryオブジェクトを生成します.slideUp()(したがって、機能します)。
$("p")[0]を持たないDOMオブジェクトを生成します。slideUp()メソッド(したがって、機能しません)。
$("p")[0]jQueryオブジェクトを生のNode要素に変換すると、そのようなjQueryメソッドを呼び出すことはできませんslideUp()。ただし、これeq(0)はjQueryメソッドであり、最初のp要素を選択してjQueryオブジェクトを返します。
[0]とeq(0)は同等ではありません。[0]元のDOM要素を取得しeq(0)、コレクションを最初の一致に減らします。
$("p")[0].slideUp();jQueryオブジェクトで はなく要素を提供するため、ここではjQueryメソッドは機能しません。
だが、
$("p").eq(0).slideUp();ここでは、jQueryメソッドが機能するjQueryオブジェクトとしてeq(0)最初のものを返します。p
slideUp()は、rawノード要素ではなくjQueryオブジェクトでのみ機能するjQueryメソッドです。