2011-12-21 127 views
10

我想問一下,如果是'合法'將自定義變量添加到文檔主體元素。 例如:將變量添加到DOM元素

document.getElementById('elem1').customVariable = 'xxx'; 

此代碼只是工作,但我不知道這是否是「允許」

它不會在標籤的參數列表出現,但變量是進一步代碼可用..

+1

是的,先生,你可以在[我可以添加任意屬性DOM對象?( – Ibu

+0

可能重複http://stackoverflow.com/questions/4258466/can-i-add-arbitrary- property-to-dom-objects) –

+1

http://stackoverflow.com/questions/7895560/javascript-dom-setting-custom-dom-element-properties是一個更好的問答 –

回答

9

我認爲,將工作,但添加自定義屬性的更常見的方式是這樣的:

<div id="elem1" data-customVariable="foo" 

然後

document.getElementById('elem1').setAttribute("data-customVariable", "bar"); 

或者如果setAttribute

document.getElementById('elem1')["data-customVariable"] ="bar"; 

編輯

由於舊的瀏覽器嗆pimvdb的指出你也可以做

document.getElementById('elem1').dataset.customVariable ="bar"; 

只要注意你」必須注意你是如何命名的 - 駱駝套可以把它扔掉F。你會想

<div id="elem1" data-custom-variable="xxx"></div> 
+0

謝謝:-)現在清楚 –

+1

elem .dataset.customVariable'也可以使用'data-'屬性 - 可能會更清潔一點。 – pimvdb

+0

@pimvdb - 不開玩笑。這太酷了,謝謝 - +1 –