2017-05-29 58 views
1

我想爲每個div添加一個新類但唯一,我如何使用jQuery創建此類?爲div添加獨特的類

<div class="pat"></div> 
<div class="pat"></div> 
<div class="pat"></div> 

CodePen Project

+1

爲什麼唯一的類。嘗試用'id'代替班級 – prasanth

+0

爲什麼?您嘗試修復/完成的問題/要求是什麼? – Andreas

+0

我有21'div's',我想添加21'ID'我怎麼能用jQuery或JavaScript做到這一點? –

回答

0

使用jQuery的each()attr()功能嘗試.Better嘗試id而不是class獨特

對於uniqueid

$('.pat').each(function(a,b,c){ 
 
$(this).attr('id',$(this).attr('class')+a) 
 
}) 
 
console.log($('body').html())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div>

+1

謝謝,這是解決方案,我不能接受你的答案直到7分鐘。祝你有美好的一天! –

+0

@AliceAnwen歡迎您...快樂編碼.. – prasanth

0

包括所有的div到包裝。

<div id="wrapper"> 
     <div class="pat"></div> 
     <div class="pat"></div> 
     <div class="pat"></div> 
    </div> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#wrapper div").each(function(key){ 
    $(this).addClass("newclass"+ key); 
    }); 
}); 

</script> 
+0

爲什麼OP需要將它移入'wrapper'? –

+0

我只是認爲將它移入wrapper div會更好。那麼就不會依賴內部div的類。 – vartika

1

快速,純JS方法:

// for adding unique classes: 
 
// var divs = document.querySelectorAll('.pat'); 
 
// [].forEach.call(divs,(el,i)=>{ 
 
// el.classList.add('myclass_'+i) 
 
// }) 
 

 
//for adding unique id's 
 
var divs = document.querySelectorAll('.pat'); 
 
[].forEach.call(divs,(el,i)=>{ 
 
    el.id = 'myId_'+i; 
 
})
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div> 
 
<div class="pat"></div>

+0

我覺得OP想要id而不是class!檢查OP評論 –

+0

是的,可能,謝謝。 –

0

您可以使用此代碼

var divElements = document.getElementsByTagName('div'); 
console.log(divElements.length); 
var c=0; 
Array.prototype.forEach.call(divElements,function(a) { 
    a.classList = "div-" +c; 
    c++; 
    console.log(a); 
}) 
0

試試這個:

$(document).ready(function(){ 
 

 
     $("div").each(function(index) { 
 
     
 
      $(this).addClass('pat'+index) 
 
      
 
    }); 
 
});
.pat0 { 
 
    \t background-color: red; 
 
} 
 

 
.pat1 { 
 
     background-color: blue; 
 
} 
 

 
.pat2 { 
 

 
     background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<div class="pat">Pat0</div> 
 
<div class="pat">Pat1</div> 
 
<div class="pat">Pat2</div>