提问者:小点点

字符串相等时返回false


我有一个锚元素:

<a id="buyBtn" href="#" alt="Purchase" title="Buy now" data-enabled="true">

当它被点击时,我正在这样做:

enabled = $(this).data('enabled') == "true";
console.log(enabled);

但是,控制台显示false。我最初使用的是===,但结果是false,所以我转到了==


共1个答案

匿名用户

这个问题的公认答案详细说明了原因:

从jquery中的data属性中检索布尔数据

jQuery的.data()方法足够聪明,可以将“true”/“false”数据字符串转换为真正的布尔值。

严格比较运算符检查类型,但由于将字符串与布尔值进行比较而失败。

"true" === true // false