所以我正在學習操作DOM我注意到一個有趣的事:Javascript:setAttribute()v.s. element.attribute =值設置「名稱」屬性
比方說,我想通過設置元素的name
屬性」。 「點符號:
element.name = "someName";
console.log(document.getElementsByName("someName")[0]); // returns "undefined"??
但是如果我使用document.setAttribute()
方法,它工作正常:
element.setAttribute("name", "someName");
console.log(document.getElementsByName("someName")[0]); // returns the element like it should.
不知道爲什麼點符號方法在第一種情況下是行不通的。
爲什麼會發生這種情況?
一般儘量避免使用'getElementsByName' – zzzzBov
爲什麼要避免使用getElementsByName? –
屬性可以使用點符號訪問,如果這是您希望訪問它們的方式。如果你想使用點符號訪問屬性,你需要引用obj.attributes.attributeName來檢索屬性和obj.attributes.attributeName.value來操縱它的值。與setAttribute或getAttribute相比,它很囉嗦。並且不推薦作爲解決方案,但不管如何,對於你的問題「爲什麼不在第一種情況下工作」這個問題的完整答案 - 必須包括「它的確如此。你只是在錯誤的地方尋找屬性和他們的價值觀。「 – Radiotrib