1

我有一个锚元素:

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

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

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

但是,控制台显示false. 我最初使用===的是错误的,所以我搬到了==.

4

1 回答 1

10

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

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

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

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

"true" === true // false
于 2012-10-19T04:46:23.867 回答