2014-01-20 15 views
2

我想通过两个数组和for循环指定不同颜色和宽度的div,但我无法找到如何完成此操作。所以我有5个div,都应该有不同的颜色和一个单独的宽度。如何更改div的颜色和宽度?

有人在这里有任何经验,可以帮助我吗?谢谢。

<html> 
    <head> 
     <title>Hoi</title> 
    <script type="text/javascript"> 

     var color = Array("#F00","#FF0","#0F0","#0FF","#00F"); 
     var width = Array("20", "40", "60", "80", "100"); 

     { 
      for (i=0; i<5; i++) 
      { 
       document.getElementById('div'+i).style.backgroundColor = color[i]; 
       document.getElementById('div'+i).style.width = width[i]; 
      } 
     } 

     </script> 
    </head> 
    <body> 
     <div id="div1">div1</div> 
     <div id="div2">div2</div> 
     <div id="div3">div3</div> 
     <div id="div4">div4</div> 
     <div id="div5">div5</div> 
    </body> 
</html> 
+0

也许这有助于http://stackoverflow.com/questions/5915096/get-random-item-from -javascript-array – caramba

回答

5

改变你的循环来源:

for (i=0; i<5; i++) { 
    document.getElementById('div'+i).style.backgroundColor = color[i]; 
    document.getElementById('div'+i).style.width = width[i]; 

for (i=1; i <= 5; i++) { 
    document.getElementById('div'+i).style.backgroundColor = color[i-1]; 
    document.getElementById('div'+i).style.width = width[i-1] + "px"; 

和 变化:

document.getElementById('div'+i).style.width = width[i]; 

document.getElementById('div'+i).style.width = width[i-1] + "px"; 

,只是身体标记的收盘 演示:: jsFiddle

+0

然后'width [i]'应该是'width [i - 1]' –

+1

你是对的.. :) –

-1
<html> 
    <head> 
     <title>Hoi</title> 

    </head> 
    <body> 
     <div id="div1">div1</div> 
     <div id="div2">div2</div> 
     <div id="div3">div3</div> 
     <div id="div4">div4</div> 
     <div id="div5">div5</div> 
    </body> 
    <script type="text/javascript"> 

     var color = Array("#F00","#FF0","#0F0","#0FF","#00F"); 
     var width = Array("20px", "40px", "60px", "80px", "100px"); 

     { 
      for (i=1; i<5; i++) 
      { 

       var strId = "div" + i; 
       alert(strId); 
       document.getElementById(strId).style.background = color[i]; 
       document.getElementById(strId).style.width = width[i]; 
      } 
     } 

     </script> 
</html> 
0

http://jsfiddle.net/uQnsr/1/

var color = new Array("#F00", "#FF0", "#0F0", "#0FF", "#00F"); 
var width = new Array("20", "40", "60", "80", "100"); 

for (i = 1; i < 6; i++) { 
    document.getElementById('div' + i).style.backgroundColor = color[i]; 
    document.getElementById('div' + i).style.width = width[i] + 'px'; 
} 
0

试试这个代码前加上您的JS代码:

var color = Array("#F00", "#FF0", "#0F0", "#0FF", "#00F"); 
var width = Array("20", "40", "60", "80", "100");  
for (var i=0; i<5; i++) 
{  
    document.getElementById('div'+(i+1)).style.backgroundColor = color[i]; 
    document.getElementById('div'+(i+1)).style.width = width[i] + "px"; 
} 

演示:Fiddle

0

,你可以使用jQuery每个

$('div[id*=div]').each(function(index,value) 
+0

你能为我添加一个小提琴演示吗? –

0

你为什么不使用JQuery。它更快,更快修复。

<title>Hoi</title> 

<body> 
     <div id="div1">div1</div> 
     <div id="div2">div2</div> 
     <div id="div3">div3</div> 
     <div id="div4">div4</div> 
     <div id="div5">div5</div> 
</body> 

这里是你的JS代码:

$(document).ready(function(){ 

var color = Array("#F00","#FF0","#0F0","#0FF","#00F"); 
var width = Array("20", "40", "60", "80", "100"); 

      for (i=1; i<6; i++) 
      { 
       $("#div" + i).css("background-color", color[i-1]); 
       $("#div" + i).css("width",width[i-1]);         
      } 
}); 

您可以检查http://jsfiddle.net/C48nd/