在html元素中data-attribute = false和data-attribute =“false”有什么区别吗?

时间:2013-06-06 11:53:57

标签: html html5

我在html元素中的数据属性为<button data-verified=false>Update</button>。它具有数据属性的布尔值。

以下元素<button data-verified="false">Update</button>是否有任何差异,因为data-attribute包含双引号。

html是否支持布尔值?

4 个答案:

答案 0 :(得分:3)

HTML支持布尔属性,但数据验证不是其中之一,无论它在标记中出现的方式如何。 data-verified=falsedata-verified="false"都创建了类型字符串的属性,值为“false”,如果在JS中作为布尔值进行测试,则将其视为 true

这只是因为false不包含空格。作为相反的示例,data-verified=not true无效,与data-verified="not true"

完全相同

答案 1 :(得分:2)

值没有差异 - 但是,总是更喜欢引用属性值,因为:

  • 看起来更干净
  • 易于维护
  • 每个编辑都可以轻松处理
  • 这是一个标准的,几乎所有HTML代码示例都会使用引用的值

我的回答来自Do you quote HTML5 attributes?

答案 2 :(得分:0)

我认为这只是一种惯例,属性总是有双引号。

然而。在jQuery中,您可以使用.data()方法。它足够智能识别布尔值和数值。

答案 3 :(得分:0)

唯一的区别是在XHTML中只允许后者。在HTML语法中,它们都是允许的,它们是等价的:解析HTML标记时差异会丢失,而DOM在两种情况下都只包含字符串false

这遵循HTML中的一般原则,并且不以任何方式依赖于属性的名称。

“布尔值”是一个含糊的术语。在HTML5中,一些属性被称为“布尔属性”,但这具有很强的误导性 - 特别是因为值truefalse不是唯一允许的值,所以这些值根本不允许。您需要阅读“布尔属性”的规范才能看到它们到底是什么。

当您使用data-*属性时,完全取决于您使用的值以及处理方式。