我在html元素中的数据属性为<button data-verified=false>Update</button>
。它具有数据属性的布尔值。
以下元素<button data-verified="false">Update</button>
是否有任何差异,因为data-attribute包含双引号。
html是否支持布尔值?
答案 0 :(得分:3)
HTML支持布尔属性,但数据验证不是其中之一,无论它在标记中出现的方式如何。 data-verified=false
和data-verified="false"
都创建了类型字符串的属性,值为“false”,如果在JS中作为布尔值进行测试,则将其视为 true
这只是因为false
不包含空格。作为相反的示例,data-verified=not true
无效,与data-verified="not true"
答案 1 :(得分:2)
值没有差异 - 但是,总是更喜欢引用属性值,因为:
答案 2 :(得分:0)
我认为这只是一种惯例,属性总是有双引号。
然而。在jQuery中,您可以使用.data()
方法。它足够智能识别布尔值和数值。
答案 3 :(得分:0)
唯一的区别是在XHTML中只允许后者。在HTML语法中,它们都是允许的,它们是等价的:解析HTML标记时差异会丢失,而DOM在两种情况下都只包含字符串false
。
这遵循HTML中的一般原则,并且不以任何方式依赖于属性的名称。
“布尔值”是一个含糊的术语。在HTML5中,一些属性被称为“布尔属性”,但这具有很强的误导性 - 特别是因为值true
和false
不是唯一允许的值,所以这些值根本不允许。您需要阅读“布尔属性”的规范才能看到它们到底是什么。
当您使用data-*
属性时,完全取决于您使用的值以及处理方式。