它们确实在chrome和ff中以这种方式工作,但这是预期的功能吗?例如,我可以依赖他们继续工作而没有明确的价值吗?
示例:
<input type="checkbox" checked data-mychecked>
答案 0 :(得分:2)
当然,data
属性可以用作布尔值。如果data属性具有不存在的值,则属性值为空字符串。如果数据属性根本不存在,则属性值为undefined
。
var isChecked = (typeof checkbox.dataset.mychecked !== 'undefined');
DEMO:http://jsfiddle.net/xu19n3pd/
<input type="checkbox" id="checkbox" checked data-mychecked data-foo="bar">
var checkbox = document.getElementById('checkbox');
console.log(checkbox.dataset.mychecked); // ""
console.log(checkbox.dataset.foo); // "bar"
console.log(checkbox.dataset.idontexist); // undefined