代码:
<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.
代码:
<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.
你可能想用eq
这个:
alert($('img').eq(0).attr('alt'));
直接回答你的问题:
它不起作用,因为[0]
返回选择器的本机 DOM 元素,它没有名为.attr()
. 您需要使用.eq(index)
,它基本上提取出index
由$()
. 请注意,它$()
返回一个类似数组的对象,而不是一个数组本身(因此[0]
不能开箱即用)
$("img")[0]
返回原始 DOM 元素。您想要包装 DOM 元素的 jQuery 对象。
用于$("img").eq(0)
获取 jQuery 对象。
$('img')[0]
返回 HTMLElement 对象,而不是 jquery 对象,因此它没有方法.attr
。如果你想使用它,你应该这样做$('img')[0].getAttribute('alt')
。
或者你仍然想要 jquery 对象,你可以使用$('img').first().attr('alt')
.