我可以将HTML5数据 – *属性用作布尔属性吗?

参见英文答案 > Are empty HTML5 data attributes valid?4个答案我想使用自定义布尔属性将元素的内容标记为可编辑。我知道data- *属性,但不知道他们是否需要一个值。我不需要data-is_editable =“false”,因为缺少属性将是等效的。我只关心它是否为“真”(如果属性存在)。我知道我可以使用其他属性,如类,但我不想,因为它似乎有点不合适(如果我错了,纠正我)。

这是我正在阅读的资源,也许这是错误的文档,或者我忽略了我正在寻找的信息:
http://www.w3.org/html/wg/drafts/html/master/dom.html#custom-data-attribute

那么例如,这是合法有效的吗?

<div data-editable data-draggable> My content </div>

解决方法

显示的示例是有效的。 (就像使用禁用或签入表单一样,只有xHTML强制存在一个值)

虽然,返回的值不是布尔值。当您查询此资源时,您将获得任何空的data- *属性的空字符串。

像这样:

domNode.dataset.draggable; // log ""
 domNode.dataset.notAdded; // log null

所以,你只需要检查一下:

var isDraggable = (domNode.dataset.draggable != null)

编辑

愚蠢以前没有说过。但是,如果你想要布尔值,你可以检查属性是否存在:

domNode.hasAttribute("data-draggable");

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码