4

要素でhtml5「data」属性を使用しています。変数が存在し、空でない場合にのみ、属性値を変数に割り当てたいと思います。

var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';

しかし、それは機能しません。私はいつもデフォルト値を取得します...

4

3 に答える 3

5

短絡の使用はより簡単で効率的です。

var xxx = $(this).data('what') || 'default_value';

しかし、データが存在すると仮定すると、コードはとにかく機能するはずです(コメント投稿者が指摘したように)。

于 2011-04-28T16:14:29.120 に答える
3

$(this)はあなたが期待するものではないようです。それ以外は、ステートメントは問題ないように見えます。デモ

于 2011-04-28T16:20:01.610 に答える
2

ドキュメントによると:

.data()

.data()メソッドを使用すると、循環参照から、したがってメモリリークから安全な方法で、任意のタイプのデータをDOM要素にアタッチできます。

.attr()

.attr()メソッドは、一致したセットの最初の要素のみの属性値を取得します。

したがって、必要なのは、次のように.attr()メソッドを使用することです。

var xxx = $(this).attr('data-what') || 'default_value';
于 2011-04-28T16:13:36.107 に答える