2010-07-29 45 views
5

可能重複:
Can I just make up attributes on my HTML tags?追加自定義屬性的DOM節點

嗨,

我不知道什麼,我問的是,甚至有可能,但我d喜歡能夠向現有的HTML DOM節點添加自定義(非呈現)的樣式。

舉例來說,如果我有如下一個簡單的DOM:

<body> 
<p> 
    <span id="aSpan"></span> 
</p> 
</body> 

。我希望能夠自定義屬性添加到跨度「ASPAN」存儲的數值變量。

這是可能的,如果是這樣,那麼最好的方法是什麼?

謝謝,

+2

請參閱[可我只是彌補屬性上我的HTML標籤(HTTP://計算器。com/questions/427262/can-i-just-make-up-attributes-on-my-html-tags) – 2010-07-29 14:25:34

回答

9

當然,我一直這樣做。你可以做到這一點的HTML:

<span id="aSpan" attname="attvalue">

(驗證不雖喜歡這一點,在技術上是無效的HTML,但它的工作原理)

或者通過javascript:

element.setAttribute('attname', 'attvalue');

您可以閱讀:

element.getAttribute('attname');

+3

取決於你的文檔類型,這可能是無效的。最好使用HTML5'data-attname =「blah」' – Ped 2012-09-05 11:48:00

+0

這個問題在2010年得到了回答,但你是正確的,現在我總是在自定義屬性名稱前添加'data-'。 – Rob 2012-09-18 07:32:58

0

一個簡單的方法..如果你的網頁是DINAMIC ..你可以簡單地將值添加到您的ID

一個小例子,如果我理解好了,你可以在一個類中使用它,我們應該有一個56號

<body> 
<p> 
    <span id="aSpan" class="A54F23345A56A23524234"></span> 
</p> 
</body> 

我只是做了一個字符串ID「A54F23345A」 + 56 +「A23524234」

但是你可以使用它你想..和ID是從用戶隱藏..你可以使用更多安全腳本..但如果不是一個安全問題..它就像一個魅力^^

有一個愉快的一天

2

the duplicate question看看的原因,爲什麼不這樣做這和限制如何它可以合法在HTML 5

完成儘管您會收到驗證錯誤,使用jQuery你可以使用$.attr()功能:

$('.element').attr('foo', 'bar')