Jquery 为什么美元(“;img”;)[0]doen';不行?

Jquery 为什么美元(“;img”;)[0]doen';不行?,jquery,Jquery,代码: 为什么没有弹出一个框,并显示这是一个测试。您可能希望用于此测试: alert($('img')[0].attr('alt')); 要直接回答您的问题: 它不起作用,因为[0]返回选择器的本机DOM元素,该元素没有名为.attr()的方法。您需要使用.eq(index),它基本上提取由$()表示的元素中的索引第四个元素。请注意,$()返回一个类似数组的对象,而不是数组本身(因此[0]不能开箱即用)$(“img”)[0]返回原始DOM元素。您需要包装DOM元素的jQuery对象 使用$(

代码:

为什么没有弹出一个框,并显示
这是一个测试。

您可能希望用于此测试:

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

要直接回答您的问题:

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

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

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

$('img')[0]
返回HtmleElement对象,而不是jQuery对象,因此它没有方法
.attr
。 如果要使用它,应该执行
$('img')[0].getAttribute('alt')

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

没有
domeElement
这样的东西。(你的意思是:DOM元素吗?)我一直认为它有一个:s,谢谢@minitech的新知识:)有没有办法知道$()返回类似数组的对象而不是数组。谢谢,谢谢。如何知道哪个元素返回HtmleElement对象或jquery对象,您可以使用调试控制台进行检查。如何使用调试控制台,您可以提供更多详细信息。很多感谢如果您使用firefox,那么它就是firebug。或者说Chrome就是Chrome调试工具,甚至IE也有调试工具。
console.log($('img')[0])然后观察控制台。
 alert($('img')[0].attr('alt'));
 alert($('img').eq(0).attr('alt'));