Jquery each()总是使用last objects属性

时间:2013-05-25 12:21:31

标签: jquery object attributes each attr

我正在尝试使用某个类遍历页面上的所有元素,然后动态设置样式颜色。 问题是它始终使用最后的对象颜色属性,我不知道为什么,因为当我记录颜色时它总是不同? 这是我的代码:

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>

问题不在于找到div-代码是针对正确的元素 - 但它将它们全部设置为相同的颜色,它应该抓住每个元素attr('color')并使用该颜色。

1 个答案:

答案 0 :(得分:0)

似乎发生这种情况是因为您没有更改'id'变量。因此,每次迭代都会为相同的元素设置新颜色,最后颜色等于“find”变量中最后一个元素的“color”属性。