2009-12-06 67 views
0

在stackoverflow上的第一篇文章。希望一切都是對的!粘貼到HTML元素(使用js)而不是id-屬性的ID?

我在考慮通過JavaScript將HTML值添加到HTML元素本身,而不是使用HTML id屬性。

例如,假設JavaScript變量htmlElement是一個div。所以htmlElement.cssName會告訴我們它的CSS類。

現在,如何在JavaScript做

htmlElement.idProperty = "someValue" 

而不是做<div id="someValue">?然後我可以在事件處理程序中使用idProperty

this.idProperty 

那簡單!

這樣做有什麼問題嗎?

編輯:謝謝你的回答!非常有幫助和有益的。我希望我可以檢查他們所有的綠色!

+0

請注意,它是className,而不是cssName;其他HTMLElement屬性使用它們的常規名稱進行訪問,所以只是「id」是正確的。有關背景信息,請參閱http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95362176。 – 2009-12-06 18:50:45

+0

添加和刪除id元素感覺有點語義錯誤。如果一個身份來了又去,身份就不是真正的身份。如果動態CSS樣式是你的目標,你有沒有考慮過在元素上切換類? jQuery/*使得切換類非常簡單。 – Christian 2009-12-06 19:11:31

回答

2

沒有,你可以做到這一點,你喜歡的方式,如果你是動態創建這個項目,你應該使用這種方法,如果你在html裏面做這個,我建議你把html的名字也放在html中。

不過小記。使用element.id而不是idProperty。

element.id = 'my-id'; 
1

可以使用createAttribute方法將id添加的元素是這樣的:

id = document.createAttribute('id'); 
id.value = "someValue"; 
htmlElement.setAttributeNode(id); 
+2

我更喜歡使用'setAttribute':'htmlElement.setAttribute(「id」,「someValue」);' - http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-一core.html#ID-F68F082 – NickFitz 2009-12-06 18:42:56

0

你在做什麼有添加運行時屬性(在你的情況下,所謂的idProperty)到HTMLElement對象實例。你可以擺脫你的JavaScript代碼(Prototype庫一直在做)。讓我感到不舒服,但它適用於所有主流瀏覽器。

如果你想能夠在HTML標記中指定這些,但是,我會使用屬性來代替。您可以使用任意名稱創建屬性,但要小心使用data-xyz等名稱(例如,使用前綴data-),因爲這是使用您自己的屬性的HTML5標準方式。然後,您使用getAttribute獲取值,並使用setAttribute設置/更新值。

相關問題