爲什麼在jquery中通過[0]選擇不適用於視覺效果?在jQuery中使用[0]與視覺效果
$("p")[0].slideUp(); /* it does not work*/
$("p").eq(0).slideUp(); /* it works */
如前所述,我知道有一些其他的方式來選擇第一p,但我急切地想知道爲什麼上述代碼是不工作...
在此先感謝,
爲什麼在jquery中通過[0]選擇不適用於視覺效果?在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]
產生一個沒有a的DOM對象。 slideUp()
方法(所以它不起作用)。
$("p")[0]
將jQuery對象轉換爲原始Node元素,然後您無法調用其上的slideUp()
等jQuery方法。但eq(0)
是一個jQuery方法,選擇第一個p
元素並返回一個jQuery對象。
[0]
和eq(0)
不等價。 [0]
抓取原始DOM元素,並且eq(0)
將收集減少到第一個匹配。
$("p")[0].slideUp();
給你的元素不是jQuery對象所以jQuery方法在這裏不起作用。
但是,
$("p").eq(0).slideUp();
這裏,eq(0)
返回第一個p
爲jQuery對象上jQuery方法的工作原理。
slideUp()
是jQuery的方法僅上jQuery對象未在原始節點元素的作用。