是否可以将自己的属性添加到HTML元素中?

Hem*_*ant 52 html javascript jquery

可能重复:
自定义属性 - 是或不是?
HTML标记上的非标准属性.好事?坏事?你的意见?

在我正在进行的当前学习项目中,我需要添加一个值为数字的属性.起初我想为此目的使用"id",但答案显示这样做并不好.

如果我创建自己的属性,说"messid"并为其分配一个数字值,如"12","6"等,这样可以吗?

这就是为什么我想这样做,以便你可以纠正我,如果我做错了:我需要在我的JavaScript(使用jQuery)中访问这个数字.只是取属性值很容易,但从像"m12"或"m6"这样的字符串中提取数值是一种痛苦.(我是JavaScript世界的初学者.)

Pao*_*ino 102

关于这个问题有很多讨论:

在一天结束时,我在营地认为数据属性是最好的方式.它们是在HTML5中引入的,以避免名称冲突.基本上,如果您想存储任何与之相关的数据,只需在属性名称前加上"data-":

<div class="user" data-userid="5"></div>
Run Code Online (Sandbox Code Playgroud)

对整个事情唯一的看法就是你的XHTML不会验证,但老实说我并不关心那些东西.(那是对的,我说过)

  • +1.我完全同意这种方法是一种易于实现的工作解决方案,并且不会破坏任何内容.理想主义的实用主义也在我的书中获胜. (9认同)
  • "这是对的,我说过了" - 第一步是承认它.;) (6认同)

Kor*_*nel 8

在HTML 5中,您可以添加任何以...开头的属性data-,因此例如<div data-messid="12">可以.

如果您添加自己的属性,HTML 4和XHTML 1将不会验证,但如果您选择足够唯一的属性名称(因此它不会与任何当前或未来的HTML属性冲突),则不会发生任何不良情况.


kar*_*m79 5

您知道,您可以轻松地从字符串中提取ID,例如m12或m6,我会这样做:

//name the IDs m_12, m_3 etc
var number = $('#someElement').attr('id').split('_')[1];
Run Code Online (Sandbox Code Playgroud)

或者,如果说,您在ID中有一堆带有数字的链接,并且所有链接都有clickMe类:

$('a.clickMe').click(function() {
    alert($(this).attr('id').split('_')[1]);
});
Run Code Online (Sandbox Code Playgroud)