2013-05-25 25 views
0

我試圖循環遍歷頁面上的所有元素,並使用某個類,然後動態設置樣式顏色。 問題是,它始終使用最後一個對象的顏色屬性,我不知道爲什麼,因爲當我記錄顏色時,它總是不同的? 這裏是我的代碼:jquery each()始終使用最後一個對象的屬性

var find= $("."+id); 
find.each(function(index, element) { 
    var colour = $(this).attr('colour'); 

    var top = $("."+id + ".top"); 
    var mid = $("."+id + ".middle"); 
    var bot = $("."+id + ".bottom"); 
    top.attr("style","border-bottom: 27px solid "+colour); 

    mid.attr("style","background:"+colour); 

    bot.attr("style","border-top: 27px solid "+colour); 

}); 

任何人有什麼,我做錯了什麼想法? 非常感謝!

編輯: 這裏的HTML:

<div class="hex-row"> 
<a href=""> 
    <div class="hex "> 
    <div class="top image" colour="#E1BB4E"></div> 
    <div class="middle image" colour="#E1BB4E"></div> 
    <div class="bottom image" colour="#E1BB4E"></div> 
</div> 
</a> 
<a href=""> 
<div class="hex "> 
    <div class="top publishing" colour="#A34F70"></div> 
    <div class="middle publishing" colour="#A34F70"></div> 
    <div class="bottom publishing" colour="#A34F70"></div> 
</div> 
</a> 
</div> 

的問題不在於找到代碼的目標是正確的元素divs- - 但它的設置他們都爲相同的顏色,它應該抓住每一個的元素attr('color')並使用該顏色。

+0

$(「。」+ id)'中的'id'代表什麼? –

+1

並且'colour'不是有效的'attribute',而是使用'data'屬性。您發佈的代碼不足以幫助我們。展示更多。 –

+0

$(「。」+ id)中的Id代表'圖像'或'發佈',具體取決於哪個按鈕被點擊。 – matt

回答

0

似乎發生這種情況是因爲您不改變'id'變量。因此,每次迭代都會爲相同元素設置新顏色,並在最後使顏色等於「查找」變量中最後一個元素的「顏色」屬性。

相關問題