为什么$(“img”)[0]不起作用?

时间:2012-05-16 02:11:44

标签: jquery

代码:

<img src="image1.jpg" alt="This is 1 test.">

<img src="image2.jpg" alt="This is 2 test">

jquery代码:

 alert($('img')[0].attr('alt'));

为什么没有弹出框,并显示This is 1 test.

4 个答案:

答案 0 :(得分:7)

您可能希望使用eq

 alert($('img').eq(0).attr('alt'));

答案 1 :(得分:7)

直接回答你的问题:

它不起作用,因为[0]返回选择器的本机DOM元素,该元素没有名为.attr()的方法。您需要使用.eq(index),它基本上会提取index所代表的元素的$()元素。请注意,$()会返回类似数组的对象而不是数组本身(因此[0]无法开箱即用)

答案 2 :(得分:2)

$("img")[0]返回原始DOM元素。你想要包装DOM元素的jQuery对象。

使用$("img").eq(0)获取jQuery对象。

答案 3 :(得分:1)

$('img')[0]返回HTMLElement对象,而不是jquery对象,因此它没有方法.attr。 如果您想使用它,您应该$('img')[0].getAttribute('alt')

或者你仍然想要jquery对象, 您可以使用$('img').first().attr('alt')