2016-02-05 58 views
3

我有这样的:jQuery选择对象 - 只需要使用特定的一个

console.log($("div[id^='highc']")); 

这将打印我对象的数组。我可以很容易地得到我想要的键入:现在

console.log($("div[id^='highc']")[0]); 

$("div[id^='highc']").append('text')追加到所有对象在返回数组。我如何分配给数组中的某个对象?

这不起作用:

$("div[id^='highc'][0]").append('text')

回答

1

重要的是要注意,$("div[id^='highc']")返回a jQuery object包含DOM elements(如果选择了任何内容)的集合。由于jQuery对象类似对数组,$("div[id^='highc']")[0]将返回jQuery对象中的第一个DOM元素。

您在可能遇到的问题是您不能在本机DOM元素上使用jQuery方法(如.append())。换言之,如果您要串联在第一DOM element.append()方法在jQuery对象(即,$("div[id^='highc']")[0].append(...)),将收到错误消息,说明.append()不是函数:

Uncaught TypeError: $(...)[0].append is not a function

由于.append()方法操作在jQuery对象上,您可以使用.eq() method以基于其索引检索包含该元素的jQuery对象。

$("div[id^='highc']").eq(0).append('Text'); 

或者,一个丑陋的做法是为了返回一个jQuery对象与$()包装的DOM元素:

$($("div[id^='highc']")[0]).append('Text'); 

旁注:

在你的问题,你使用$("div[id^='highc'][0]")$("div[id^='highc']")[0]。我假设它是一个错字,而你的意思是后者,因为$("div[id^='highc'][0]")不会返回任何元素,因为元素可能没有[0]属性。您可能试图在选择器外部使用.append()方法与[0]

+0

.eq()摇摆。非常感谢! –

2

你的问题是,当你试图$("div[id^='highc'][0]").append('text'),你把[0]选择里面,而不是外面。正确的代码是$("div[id^='highc']")[0].append('text')