有效,但不是布尔值。
自定义数据属性规范未提及对空属性处理的任何更改,因此关于空属性的一般规则适用于此:
可以通过仅提供属性名称而不提供值来指定某些属性。
在以下示例中,该
disabled属性使用空属性语法给出:<input disabled>请注意,空属性语法完全等同于将空字符串指定为属性的值,如以下示例所示。
<input disabled="">
因此,允许您使用空的自定义数据属性,但是需要特殊处理才能将它们用作布尔值。
当您访问空属性时,其值为
""。由于这是一个伪造的值,因此您不能仅使用它
if (element.dataset.myattr)来检查属性是否存在。
您应该使用
element.hasAttribute('myattr')或
if (element.dataset.myattr !==undefined)代替。
劳埃德的答案是错误的。他提到了指向布尔属性微语法的链接,但是
data-*在规范中未将属性指定为布尔值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)