Javascript 可以将自己的属性添加到HTML元素中吗?
可能的重复项:Javascript 可以将自己的属性添加到HTML元素中吗?,javascript,jquery,html,Javascript,Jquery,Html,可能的重复项: 在我正在进行的当前学习项目中,我需要添加一个值为数字的属性。起初,我想用“id”来实现这个目的,但后来发现这样做并不好 如果我创建自己的属性,比如说“mesid”,并为其指定一个数字值,如“12”、“6”等,可以吗 这就是为什么我要这样做,这样,如果我完全做错了,你可以纠正我: 我需要在JavaScript中访问这个数字(使用jQuery)。仅获取属性的值很容易,但从“m12”或“m6”之类的字符串中提取数值却很困难。(我是JavaScript领域的初学者。)否-。关于这一点
在我正在进行的当前学习项目中,我需要添加一个值为数字的属性。起初,我想用“id”来实现这个目的,但后来发现这样做并不好 如果我创建自己的属性,比如说“mesid”,并为其指定一个数字值,如“12”、“6”等,可以吗 这就是为什么我要这样做,这样,如果我完全做错了,你可以纠正我:
我需要在JavaScript中访问这个数字(使用jQuery)。仅获取属性的值很容易,但从“m12”或“m6”之类的字符串中提取数值却很困难。(我是JavaScript领域的初学者。)否-。关于这一点,有很多讨论:
<div class="user" data-userid="5"></div>
整个事情的唯一缺点是XHTML不会验证,但我真的不在乎这些东西。(没错,我说了)在HTML5中,您可以添加任何以
数据-
开头的属性,例如
如果您添加自己的属性,HTML 4和XHTML 1将不会生效,但除此之外,如果您选择足够唯一的属性名称,则不会发生任何不好的事情(因此它不会与任何当前或未来的HTML属性冲突)。我使用自定义属性,并且由于我检查的所有浏览器都支持它们,因此我认为使用它们并不坏。您还可以使用自定义HTML标记来模拟HTML5,并进行一些IE攻击,所以如果属性不需要任何攻击,为什么不使用属性呢 无论如何,您可以在这里阅读类似的讨论:
这不是一个确定的答案,但在过去我不得不这么做,我可以说这不仅效果很好,而且跨浏览器友好。正如您所知,您可以轻松地从m12或m6之类的字符串中提取ID,我会这样做:
//name the IDs m_12, m_3 etc
var number = $('#someElement').attr('id').split('_')[1];
或者,如果说,您有一组ID中带有数字的链接,如上所述,并且所有链接都有clickMe
类:
$('a.clickMe').click(function() {
alert($(this).attr('id').split('_')[1]);
});
如果使用jQuery,则可以使用.data存储针对元素的自定义信息 自定义属性的缺点是:
- IE6创建额外的对象来存储自定义的“expando”属性,这些属性有泄漏的倾向,特别是如果它们是通过脚本创建的
- 验证问题
id
属性中,以后可能会因为其他原因而更改),同时仍将其保留在元素上。是的,HTML验证错误应该被视为问题的建议/指针,而不是必须修复错误(在这一过程中,我会对JSLint说同样的话,只是为了让事情变得更糟一些=)“是的,我说了”——第一步是承认它我正在使用ASP.NET MVC,我正在尝试使用html助手方法的htmlAttribs参数添加自定义属性“data mesid”:new{@class=“mcf”,data dd=html.AttributeEncode(m.ID)}。但它不起作用(语法问题)。我看到您在ASP.NET MVC标记中处于活动状态,请您帮助我如何操作?当然可以-用ASP.NET MVC标记询问另一个问题虽然您的回答看起来正确,但我认为这是一个太琐碎的问题。无论如何,我要为这个问题再提一个问题。。。