选择所有孩子并分配随机背景颜色

时间:2013-04-19 12:37:22

标签: jquery

我正在尝试选择子节点并随机更改每个div背景颜色,以便我可以快速查看页面是如何分解的。 我找到了一个很好的小脚本来生成十六进制,但我正在努力将其应用于选定的div。

返回十六进制值:

function random_color() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
    color += letters[Math.round(Math.random() * 15)];
}
return color;
};

这不会循环遍历孩子并分配随机值。

function loop(){
children = $("#container").children();
$(children).each(function(){
    $(this).css("background-color", random_color());
   }    
};

loop();

以为我会把这个丢掉。

提前谢谢。

5 个答案:

答案 0 :(得分:2)

您在$中不需要children,因为它已经是一个jquery对象

children.each(function(){
  $(this).css("background-color", random_color());
 });
//^^---here    
};

并注意到您错过了每个...... {/ strong>

的结束括号)

答案 1 :(得分:1)

children已包含所有子元素..

所以使用:

function loop(){
children = $("#container").children();
children.each(function(){                  //<----  children instead of $(children)
   $(this).css("background-color", random_color());
 });    
};

答案 2 :(得分:0)

试试这个

$("#container").children().each(function() {      

     var letters = '0123456789ABCDEF'.split('');
     var color = '#';
      for (var i = 0; i < 6; i++ ) 
       color += letters[Math.round(Math.random() * 15)];
        $(this).css("background-color", color);

});

$("#container").children().each(function() { 
        $(this).css("background-color", random_color());   
});

 children.each(function(){
 $(this).css("background-color", random_color());
});

答案 3 :(得分:0)

.children()已经返回了一个jquery对象,因此请替换以下行:

$(children).each(function(){

这个:

children.each(function(){

答案 4 :(得分:0)

首先......你可以使用children.each而不包装$()。第二......你的风格你的风格吗?我的意思是,他们有和高度一起吗?