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メソッドです。