4

要素に属性がまだない場合、その要素に属性を追加するにはどうすればよいですか?

if (' this does not have class=selected') {

    $(this).addClass('selected');
}
4

5 に答える 5

7
if(!$(this).attr('name')) {
   $(this).attr('name', 'value');
}

それはそれをするべきです。

于 2012-05-11T20:59:25.293 に答える
3

特にクラスについて話している場合は、先に進んで追加してください。すでに存在する場合は、2回追加されることはありません。

$(this).addClass('selected'); // will only add the class if it doesn't exist

クラスの最初のテストがこれ以上効率的だとは思えません。

ライブデモ: http: //jsfiddle.net/2sLd5/

于 2012-05-11T21:01:59.097 に答える
2

jQueryのドキュメントはあなたの友達です!:) http://api.jquery.com/category/css/

あなたはおそらくHasClassを探しています

http://api.jquery.com/hasClass/

$('#mydiv').hasClass('foo')
于 2012-05-11T20:59:51.843 に答える
1

セレクターではなく属性を使用できます。これは、クラスだけでなく、すべての属性に対して機能します

if($('#elemid[class!="myclass"]').length) {
    $('#elemid').addClass('otherClass');
}

もちろん、前述のように、チェック対象のクラスを追加する場合は、それを追加するだけです。その中に害はありません。

于 2012-05-11T21:13:29.820 に答える
0

クラスを追加する前に、クラスがすでに存在するかどうかを確認する必要はありません。jQueryソース(https://github.com/jquery/jquery/blob/master/src/attributes.js、検索addClass)を見るaddClassと、クラスがすでに存在する場合は何もしないようです。したがって、最初に確認する意味はありません。

于 2012-05-11T21:15:09.550 に答える