2016-02-05 85 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')