jQuery选择器对象 - 只需要使用某个对象

时间:2016-02-05 00:26:04

标签: jquery jquery-selectors

我有这个:

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

这会打印出一系列对象。我可以通过输入来轻松获得我想要的东西:

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

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

这不起作用:

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

2 个答案:

答案 0 :(得分:2)

您的问题是,当您尝试$("div[id^='highc'][0]").append('text')时,您将[0] 放在选择器内而不是在其外部。正确的代码是$("div[id^='highc']")[0].append('text')

答案 1 :(得分:1)

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

可能体验的问题是您无法在原生DOM元素上使用jQuery方法(如.append())。换句话说,如果您在jQuery对象中的第一个DOM element上链接.append()方法(即$("div[id^='highc']")[0].append(...)),您将收到一条错误消息,指出.append()是不是功能:

  

未捕获的TypeError:$(...)[0].append不是函数

由于.append()方法对jQuery对象进行操作,因此可以使用.eq() method来检索包含基于其索引的元素的jQuery对象。

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

或者,一个更丑陋的方法是用$()包装DOM元素以返回jQuery对象:

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

旁注:

在您的问题中,您同时使用$("div[id^='highc'][0]")$("div[id^='highc']")[0]。我假设它是一个拼写错误,你的意思是后者,因为$("div[id^='highc'][0]")不会返回任何元素,因为这些元素可能没有[0]属性。您可能尝试在选择器之外使用.append()方法和[0]