jQuery 选择器对象 - 只需要使用特定的一个

jQuery selector objects - need to use only certain one

我有这个:

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

这会打印出一组对象。我可以通过键入以下内容轻松获得我想要的内容:

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

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

这没有用:

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

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

重要的是要注意 $("div[id^='highc']") returns a jQuery object that contains a collection of DOM elements(如果选择了任何内容)。由于 jQuery 对象与数组 相似,因此 $("div[id^='highc']")[0] 将 return jQuery 对象中的第一个 DOM 元素。

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

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

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

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

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

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

旁注:

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