匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

jQueryのaddClassについて


setInterval等で同じクラスを何度もつけると、厳密には内部でどのようなことが起こっているのでしょうか?

例えば<p>に$('p').addClass('selected')というクラスを付けるときに
setInterval(function(){
$('p').addClass('selected');
},1000);
とするとこれは実際にはどういう処理になっているのでしょうか?
最終的に同じクラスが何100個も付く状態になるのでしょうか?
それともjQuery側が勝手に同じクラスは付けないようにしてくれてるのでしょうか?

お手数ですがよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/03/05 20:34:07
  • 終了:2013/03/12 20:35:07

回答(1件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2013/03/05 22:10:01

http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js

    addClass: function( value ) {
        var classes, elem, cur, clazz, j,
            i = 0,
            len = this.length,
            proceed = typeof value === "string" && value;

        if ( jQuery.isFunction( value ) ) {
            return this.each(function( j ) {
                jQuery( this ).addClass( value.call( this, j, this.className ) );
            });
        }

        if ( proceed ) {
            // The disjunction here is for better compressibility (see removeClass)
            classes = ( value || "" ).match( core_rnotwhite ) || [];

            for ( ; i < len; i++ ) {
                elem = this[ i ];
                cur = elem.nodeType === 1 && ( elem.className ?
                    ( " " + elem.className + " " ).replace( rclass, " " ) :
                    " "
                );

                if ( cur ) {
                    j = 0;
                    while ( (clazz = classes[j++]) ) {
                        if ( cur.indexOf( " " + clazz + " " ) < 0 ) {   // ★ココ!
                            cur += clazz + " ";
                        }
                    }
                    elem.className = jQuery.trim( cur );

                }
            }
        }

        return this;
    },


それともjQuery側が勝手に同じクラスは付けないようにしてくれてるのでしょうか?

ですっ!

匿名質問者

迅速な解答ありがとうございます!

2013/03/05 22:15:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません