要素に属性がまだない場合、その要素に属性を追加するにはどうすればよいですか?
if (' this does not have class=selected') {
$(this).addClass('selected');
}
要素に属性がまだない場合、その要素に属性を追加するにはどうすればよいですか?
if (' this does not have class=selected') {
$(this).addClass('selected');
}
if(!$(this).attr('name')) {
$(this).attr('name', 'value');
}
それはそれをするべきです。
特にクラスについて話している場合は、先に進んで追加してください。すでに存在する場合は、2回追加されることはありません。
$(this).addClass('selected'); // will only add the class if it doesn't exist
クラスの最初のテストがこれ以上効率的だとは思えません。
ライブデモ: http: //jsfiddle.net/2sLd5/
jQueryのドキュメントはあなたの友達です!:) http://api.jquery.com/category/css/
あなたはおそらくHasClassを探しています
http://api.jquery.com/hasClass/
$('#mydiv').hasClass('foo')
セレクターではなく属性を使用できます。これは、クラスだけでなく、すべての属性に対して機能します
if($('#elemid[class!="myclass"]').length) {
$('#elemid').addClass('otherClass');
}
もちろん、前述のように、チェック対象のクラスを追加する場合は、それを追加するだけです。その中に害はありません。
クラスを追加する前に、クラスがすでに存在するかどうかを確認する必要はありません。jQueryソース(https://github.com/jquery/jquery/blob/master/src/attributes.js、検索addClass
)を見るaddClass
と、クラスがすでに存在する場合は何もしないようです。したがって、最初に確認する意味はありません。