2016-07-05 111 views
0

我想在修改类的名称时将类添加到另一个类的特定实例。这是代码我有:动态添加类到另一个类的特定实例

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

这是函数之前的代码是RAN:

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

,这是所需的输出。

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

请帮忙!

+0

Jayesh的答案很好,所以我不会发布另一个响应,但如果您好奇,您的方法不起作用,因为$('。formEntry')[i]'返回本地DOM元素,没有addClass函数。你可以执行'$('。formEntry')。eq(i)'或'$($('。formEntry')[i])'来获得可以调用addClass的正确的jQuery对象。 (前者可能更好) –

+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

您不必使用eachaddClass也起作用。

$('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

相关问题