我试图从html DIV元素检索类型布尔的数据属性,但它总是返回false,当字符串转换为布尔值。
HTML
<div id='test' data-return="true"></div>
JS
isreturn_str = $('#test').data('return'); isreturn = (isreturn_str === 'true'); if (isreturn) { document.write("It is true"); } else { document.write("It is false"); }
It is false
解决方法
jQuery .data()方法聪明地识别布尔值和数值,并将它们转换为其本机类型。所以$(‘#test’)。data(‘return’);返回布尔值true,而不是“true”。
如果你想得到原始数据(没有自动数据转换),你可以使用.attr():
$('#test').attr("data-return");
在这里看到工作测试用例:http://jsfiddle.net/jfriend00/6BA8t/