2016-07-05 7 views
0

クラスの名前を変更しながら、別のクラスの特定のインスタンスにクラスを追加しようとしています。これは私が持っているコードです:別のクラスの特定のインスタンスにクラスを動的に追加する

<fieldset class = "formEntry"></fieldset> 
<fieldset class = "formEntry"></fieldset> 
<fieldset class = "formEntry"></fieldset> 

と、これは所望の出力です:関数が実行される前に

for(var i = 0; i<3; i++){ 
      $('.formEntry')[i].addClass("form" + i); 
    } 

これはコードです。

<fieldset class = "formEntry form1"></fieldset> 
<fieldset class = "formEntry form2"></fieldset> 
<fieldset class = "formEntry form3"></fieldset> 

助けてください!

+0

Jayeshの答えはいいので、私は別の返答を投稿しませんが、好奇心が強いなら、 '$( '。formEntry')[i]'はネイティブDOM要素を返します。 addClass関数があります。 addClassを呼び出すことができる適切なjQueryオブジェクトを取得するには、 '$( '。formEntry').eq(i)'または '$( '。formEntry')[i])' (前者はおそらく良いでしょう) –

+0

@MatisLepikああ、私は今参照してください。明確にしてくれてありがとう。これはしばらくの間固まっています:) – nutellasandwich

答えて

1

すべての要素をループするために.each()を使用し、.addClass()メソッドを使用してクラスを追加できます。

$(document).ready(function() { 
 
$(".formEntry").each(function(i) { 
 
     $(this).addClass("form" + (i+1)); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<fieldset class = "formEntry"></fieldset> 
 
<fieldset class = "formEntry"></fieldset> 
 
<fieldset class = "formEntry"></fieldset>

0

あなたはeachを使用する必要はありません。 addClassも同様に機能します。

$('formEntry').addClass(function(i) { return 'form' + (i+1) }) 
0

)あなたは(スライスを使用することができます...ループ内で動的に追加クラスの

jQuery(document).ready(function(){ 
 
    var i=1; 
 
jQuery('.formEntry').each(function(){ 
 
    
 
jQuery(this).addClass('form'+i); 
 
    i++; 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<fieldset class = "formEntry"></fieldset> 
 
<fieldset class = "formEntry"></fieldset> 
 
<fieldset class = "formEntry"></fieldset>

0

を、このコードを使用します。

for(var i = 0; i < 3; ++i){ 
$('.formEntry').slice(i,(i + 1)).addClass("form" + i); 
} 

API JQuery

関連する問題