2010-07-29 43 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')