0

何かをする前に既存のタグをチェックするのは理にかなっていますか? それとも、jQuery はその場で処理を行っていますか?

ここにサンプルコード

$('#my_ul li.active').removeClass('active');

また...

if(  $('#my_ul li.active').length ) {
    $('#my_ul li.active').removeClass('active');
}
4

2 に答える 2

3

いいえ、意味がありません。高速でも便利でもありません。やらないでください。

単純に

 $('#my_ul li').removeClass('active');

liそのような要素がなくても、要素にactiveクラスがなくても、エラーは発生しません。

于 2013-08-17T16:32:50.547 に答える
1

jQuery は、選択によって返されるすべての要素に対してループを実行します。したがって、配列にゼロ要素がある場合、ループはゼロ回発生します。この例を見てください

html

<ul>
   <li>Hello World</li>
</ul>

JavaScriptは

var $('li');

コンソールにログを記録すると、要素の配列が返され、次のようになります。

[<li>Hello world</li>]

上記は配列であるため、jQuery がループするときは 1 回実行されます。ただし、セクションがゼロ項目を返す場合、ループはそこで発生しません

$('div').removeClass(".myClass");

基本的にremoveClassプラグイン(コアjQueryコードの一部である単なるプラグインです)

プラグインは次のようなことを行います。

$.each($('div), function () {
  //some code to remove the class 
})

これがjQueryの内部を理解するのに役立つことを願っています

于 2013-08-17T17:11:25.100 に答える