我有这个:
console.log($("div[id^='highc']"));
这会打印出一系列对象。我可以通过输入来轻松获得我想要的东西:
console.log($("div[id^='highc']")[0]);
现在,$("div[id^='highc']").append('text')
附加到返回数组中的所有对象。如何分配给数组中的某个对象?
这不起作用:
$("div[id^='highc'][0]").append('text')
答案 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]
。