data- *属性可以像布尔一样检查吗?

时间:2015-10-14 01:41:57

标签: html

它们确实在chrome和ff中以这种方式工作,但这是预期的功能吗?例如,我可以依赖他们继续工作而没有明确的价值吗?

示例:

<input type="checkbox" checked data-mychecked>

1 个答案:

答案 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