将非现有属性附加到html元素以便在jquery中使用它是一种好习惯。例如
<input type="text" valrule="someregexstring" />
然后只需使用jquery选择包含名为valrule的属性的所有元素并解析正则表达式字符串。
就编程标准和最佳实践而言,这是一个“禁忌”吗?
答案 0 :(得分:6)
您应该使用前缀data-<myAttribute>
。 HTML5支持它,其他浏览器会忽略它,您可以使用.data()
方法使用jQuery轻松访问它。
<input id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>
你可以像这样检索这些信息:
var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)
答案 1 :(得分:3)
将HTML5数据前缀用于新属性,如下所示:
<input type="text" data-valrule="someregexstring" />
有效的HTML 5 ..
答案 2 :(得分:2)
你绝对可以。尽管HTML5引入了所谓的 data - 属性,但允许以标准方式将非标准属性设置为元素。
您只需在data-
<input type="text" data-valrule="someregexstring" />
虽然这是在HTML5中引入的,但您仍然可以将它与HTML4的文档一起使用。
答案 3 :(得分:0)
我个人不会这样做。有些浏览器会忽略&#34;不存在&#34;解析HTML时的属性,因此这些属性不会保存在浏览器页面DOM中。执行jQuery选择器时,它们可能找不到此属性。
如果您保证在HTML5兼容的浏览器中运行,那么您可以为您的属性使用HTML5 data-
前缀,例如
<input type="text" data-valrule="someregexstring" />
但是,如果您在较旧的浏览器中运行,这仍然可能无效。例如,事实证明我们几乎有一半的客户使用IE7而没有升级计划(以政府的速度移动)。