不存在的属性HTML输入字段

Non existing Attributes HTML Input Field

本文关键字:输入 字段 HTML 属性 不存在      更新时间:2023-09-26

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

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

然后简单地使用jquery来选择所有包含valrule属性的元素,并解析regex字符串。

就编程标准和最佳实践而言,这是"不可行的"吗?

您应该使用前缀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 ;-)

使用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+),可以使用.data()或通过.attr()访问data-属性。

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

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

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

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