要素でhtml5「data」属性を使用しています。変数が存在し、空でない場合にのみ、属性値を変数に割り当てたいと思います。
var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';
しかし、それは機能しません。私はいつもデフォルト値を取得します...
要素でhtml5「data」属性を使用しています。変数が存在し、空でない場合にのみ、属性値を変数に割り当てたいと思います。
var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';
しかし、それは機能しません。私はいつもデフォルト値を取得します...
短絡の使用はより簡単で効率的です。
var xxx = $(this).data('what') || 'default_value';
しかし、データが存在すると仮定すると、コードはとにかく機能するはずです(コメント投稿者が指摘したように)。
$(this)はあなたが期待するものではないようです。それ以外は、ステートメントは問題ないように見えます。デモ
ドキュメントによると:
.data()
.data()メソッドを使用すると、循環参照から、したがってメモリリークから安全な方法で、任意のタイプのデータをDOM要素にアタッチできます。
.attr()
.attr()メソッドは、一致したセットの最初の要素のみの属性値を取得します。
したがって、必要なのは、次のように.attr()メソッドを使用することです。
var xxx = $(this).attr('data-what') || 'default_value';