3

代码:

<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

4 回答 4

7

你可能想用eq这个:

 alert($('img').eq(0).attr('alt'));
于 2012-05-16T02:13:51.190 回答
7

直接回答你的问题:

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

于 2012-05-16T02:17:08.957 回答
2

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

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

于 2012-05-16T02:17:13.230 回答
1

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

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

于 2012-05-16T02:18:36.833 回答