2016-09-19 56 views
2

在我的頁面中,由於某種原因(我沒有發現與該主題相關,因此沒有解釋)div被重複,在我的HTML中生成具有相同ID的div。雖然編寫jQuery代碼去除除最頂層以外的所有div,但我發現$("#id")僅返回了我1個元素(注意:現在有兩個具有相同ID的div),而$("[id=]")正在返回我2。所以最後我的代碼與$("[id=]")一起工作,但不與$("#id")。 任何原因爲什麼? $("#id")是否只返回找到的具有指定ID的第一個元素?

請注意,我已經遇到一個thread其中有一個類似的問題,但沒有回答我的查詢

+3

閱讀官方文檔https://api.jquery.com/id-selector/和https://api.jquery.com/attribute-equals-selector/ – Satpal

+3

yes,'$(「#id」)'will will總是給你單一的結果。就像'document.getelementBuId'一樣。檢查'$(「body #id」)',我相信你會得到類似於'$(「[id =]」)的結果計數2' – vijayP

+0

Hi Rajaprabhu,很長時間在SO –

回答

4

的事情是$("#id")總會給你一個結果就像document.getelementById()但是當你做$("[id=]")你發現所有具有給定屬性的元素爲id,因此它會返回多個元素,因爲它現在不使用javascript document.getelementById()

$("[id=]")是當你要選擇一些元素形成文檔遵循一些規則像

屬性,您使用的東西,包含選擇[名* =」值」]

選擇元素具有包含給定子字符串的值的指定屬性。

屬性包含字選擇器[名〜=」值」]

選擇具有與含有給定字,通過空格分隔的值指定的屬性的元素。

屬性完帶選擇[名$ =」值」]

選擇具有與一個給定的字符串完全結束的值指定的屬性的元素。比較是區分大小寫的。

欲瞭解更多信息,請參閱https://api.jquery.com/category/selectors/ 但是在你HTML您應保持id獨特。如果您希望多個元素具有相同的ID,請改爲使用class

相關問題