1

アンカー要素があります:

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

それがクリックされると、私はこれをやっています:

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

ただし、コンソールにはfalse. 私は最初に使用して===いましたが、それはfalseを与えていたので、に移動しました==.

4

1 に答える 1

10

この質問に対する受け入れられた回答には、その理由が詳しく説明されています。

jquery の data 属性からブール値データを取得する

jQuery の.data()メソッドは、「真」/「偽」のデータ文字列を実際のブール値に変換するほどスマートです。

厳密な比較演算子は型をチェックしますが、文字列をブール値と比較しているため失敗しています。

"true" === true // false
于 2012-10-19T04:46:23.867 に答える