代码:
<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.
答案 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')
。