4

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

<button data-verified="false">Update</button>由于数据属性用双引号括起来,因此与以下元素有什么区别。

html 是否支持布尔值?

4

4 回答 4

4

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

这只是这种情况,因为false不包含空格。作为一个相反的例子,data-verified=not true它是无效的,并且与data-verified="not true"

于 2013-06-06T11:58:02.167 回答
3

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

  • 看起来更干净
  • 更容易维护
  • 每个编辑都可以轻松应对
  • 这是一个标准的,您将看到的几乎所有 HTML 代码示例都使用引用的值

我的回答证实了你引用 HTML5 属性吗?

于 2013-06-06T11:58:48.547 回答
0

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

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

“布尔值”是一个模糊的术语。在 HTML5 中,一些属性被称为“布尔属性”,但这是非常具有误导性的——尤其是因为值truefalse远非唯一允许的值,对于这些值根本不允许。您需要阅读“布尔属性”的规范以了解它们的真正含义。

当您使用data-*属性时,完全取决于您将什么用作值以及如何处理它们。

于 2013-06-06T13:22:12.090 回答
0

我认为这只是属性总是有双引号的约定。

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

于 2013-06-06T11:59:13.843 回答