0

2 つの異なる要素パターンから変数を見つけたい。

var something = $('.class').attr('data-something');

if(typeof something === 'undefined') {
    var something = $('.class').attr('data-another'); 
}

if(typeof something != 'undefined') {
    // do action...
    console.log(something); 
}

attrからデータを取得したいだけですdata-someting="mydata"

data-someting="mydata"見つからない場合は、データフォームを見つけますdata-another

その後、アクションを実行します....

私は正しくやっていますか?または別の正しく行う方法は?

どうですかTry Catch

4

3 に答える 3

1
 var something = $('.class').attr('data-something') || $('.class').attr('data-another')

これはundefinedfalse値の両方に対して行います

于 2013-05-31T08:50:24.687 に答える
1

一部のブラウザにはそれがあり、一部のブラウザにundefinedは返されfalseます。したがって、より堅牢なバージョンは次のとおりです。

if (typeof something === 'undefined' || something === false) {
    // try another attribute
} else {
    // do your stuff
}

アップデート:

うーん、ドキュメントによると:

jQuery 1.6 以降、.attr() メソッドはundefined、設定されていない属性を返します。

したがって、おそらく、彼らは 1.6 の時点でこれを明示的に保証しており、私の情報falseは古くなっています。この場合、独自のコードは完全に正しいです。

于 2013-05-31T08:47:55.350 に答える
1

$.data(); を使用してデータ プロパティにアクセスできます/アクセスする必要があります。

例えば

var something = $('.class').data('something');
于 2013-05-31T08:48:13.520 に答える