将一个不存在的属性附加到html元素以便在jquery中使用它是一种很好的做法。例如

<input type="text" valrule="someregexstring" />

然后只需使用jquery选择包含名为valrule的属性的所有元素并解析正则表达式字符串。

就编程标准和最佳实践而言,这是一个"不走"吗?

有帮助吗?

解决方案

您应该使用前缀 data-<myAttribute>.它由HTML5支持,其他浏览器将忽略它,您可以使用jQuery轻松访问它 .data() 方法。

<input  id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>

你可以像这样检索这些信息 :

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)

其他提示

使用HTML5数据 - 前缀为新属性:

<input type="text" data-valrule="someregexstring" />
.

它有效的HTML 5 ..

http://ejohn.org/blog/html-5-data -attributes/

你绝对可以。虽然HTML5介绍了所谓的 数据资料- 属性,允许以标准方式将非标准属性设置为元素。

您只需在属性名称前加上前缀 data-

<input type="text" data-valrule="someregexstring" />

虽然,这是在HTML5中引入的,但您仍然可以将其与html4的文档一起使用。


使用jQuery(1.4.3+), 数据资料- 属性可以用 .数据() -或经 .助理处长().

我个人不会那样做。有些浏览器在解析HTML时会忽略"不存在"的属性,因此这些属性不会保存在浏览器页面DOM中。JQuery选择器执行时,可能找不到此属性。

如果保证在HTML5兼容的浏览器中运行,那么您可以使用HTML5 data- 属性的前缀,例如

<input type="text" data-valrule="someregexstring" />

但是,如果您在旧版浏览器中运行,这仍然可能不起作用。例如,事实证明,我们几乎有一半的客户正在使用IE7,没有计划升级(以政府的速度移动)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top