为什么在 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]
生成一个没有 . slideUp()
方法(所以它不起作用)。
$("p")[0]
将 jQuery 对象转换为原始 Node 元素,然后您不能slideUp()
在其上调用 jQuery 方法。buteq(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 对象而不是原始节点元素。