我试图从html DIV元素检索Boolean类型的数据属性,但是当字符串转换为boolean时,它总是返回false.
HTML
<div id='test' data-return="true"></div>
Run Code Online (Sandbox Code Playgroud)
JS
isreturn_str = $('#test').data('return');
isreturn = (isreturn_str === 'true');
if (isreturn) {
document.write("It is true");
} else {
document.write("It is false");
}
Run Code Online (Sandbox Code Playgroud)
产量
这是假的
jfr*_*d00 107
jQuery .data()
方法很聪明地识别布尔值和数值并将它们转换为它们的本机类型.所以这会返回布尔值true
,而不是"true"
:
$('#test').data('return');
Run Code Online (Sandbox Code Playgroud)
如果要获取原始数据(不进行自动数据转换),可以使用.attr()
:
$('#test').attr("data-return");
Run Code Online (Sandbox Code Playgroud)
在这里查看工作测试用例:http://jsfiddle.net/jfriend00/6BA8t/
jQuery识别字符串"true",因为它是布尔对应物(在数据属性的上下文中),因此:
typeof isreturn_str; // boolean
Run Code Online (Sandbox Code Playgroud)
但是你要严格比较'true'
产生错误的字符串,因为字符串不是布尔值.