2011-11-02 72 views
-3
var str = $('.rating').html(); 
$.trim(str); 
$('.rating').prepend.attr('class', 'rating-' + str.replace(/\s/g, "")); 

<div class="rating">1</div> 
<div class="rating">2</div> 
<div class="rating">3</div> 

Change to this: 
<div class="rating-1">1</div> 
<div class="rating-2">2</div> 
<div class="rating-3">3</div> 

.prepend如何與.attr一起使用?似乎我找不到關於append和attr的任何信息。Jquery:選擇類並將「.attr(***)」插入到所有同一類中

所有我想要做的是選擇一個類並用1類,2類,類-3等取代它們

+2

你還需要包含你的HTML。 –

+0

'prepend'不會那樣工作.... – Blazemonger

回答

0

對DOM元素(而非字符串)進行前置和附加操作。使用removeClass和addClass完成你正在嘗試的操作:

$('.rating').removeClass("rating").addClass(function() { 
    return "rating-" + $(this).html(); 
}); 
+0

謝謝!奇蹟般有效 :))) – Henrico

0

的.prepend()方法插入指定的內容作爲第一子jQuery集合中的每個元素(要將其作爲最後一個子元素插入,請使用.append())。

Documentation

如果你想只需更換一個類,使用$(元素).addClass和$(元素).removeClass,不預先考慮。

1

這是你想要的嗎?

因爲你改變了屬性

attr('class' 

我認爲你應該使用removeClass和addClass

var cnt = 1; 
$('.rating').each(function(){ 
    $(this).removeClass("rating"); 
    $(this).addClass("rating-" + cnt); 
    cnt = ctn + 1; 

}); 

我認爲它會做到這一點,所以每個等級評定將被取代的評價-n,其中每次更改類別時,n將遞增1

+0

啊,當然,這將循環所有。謝謝你現在就試試它。 – Henrico

+0

把答案作爲接受,如果它的工作感謝 – GregM