2013-10-07 18 views
2

我试图编辑在javascript中for循环中重复的图像高度,但我无法弄清楚我需要将其添加到哪里。Javascript:在for循环中编辑图像高度

这里是变量,如果它是很重要的:

 var i; 
     var start = 1; 
     var seg = document.getElementById("selSegs").value; 
     var parent = document.getElementById("divInch"), //parent for appendChild 
       imagePath = 'InchwormSegment.gif', //variable for image 
       img; //adding img element 

这里是我的循环:

for(i = start; i<=seg; i++) { 

      img = new Image(); //creating new image object 
      img.src = imagePath; // element src = imagePath 
      img.style.height = "215px"; // sets the height of all in loop 
      // img.style.height = (img.style.height * .9) + "px"; - does nothing 
      parent.appendChild(img); //appendChild adds another child (img) object 
     } 

我尝试添加一些数学,但我不能揣摩出它应该去

+0

你们是不是要减少或增加在每次迭代图像的高度?因为现在图像高度将保持在215px – samrap

+0

@samrap我试图减小图像的高度 – brianforan

回答

0

让我知道如果这个小提琴完成你正在尝试做的事:http://jsfiddle.net/AyNY5/。有几件事情要记住:

  1. 您可以编辑图像“高度”特性直接,没有必要去通过样式(你甚至都不需要添加PX!)
  2. 不要使用新的图像() - 使用document.createElement('img')。这是W3C支持的标准。

如果我关闭了,让我知道 - 否则,你是在正确的轨道上!

JS代码在小提琴:

var parent = document.getElementById("imgholder") 

for (i=0;i<3;i++) { 
    var img = document.createElement('img'); 
    img.src = "http://bit.ly/1975WKA" 
    img.height = "200" 
    parent.appendChild(img) 
} 
+0

这种方式可行,但我想我忘记了第一个之后的每个片段必须是前一个片段的90%。我想,如果我做了x = x * .9它会起作用,但是没有出现。 这是我试过的东西的一个jsfiddle,但它没有工作,因为它不是乘高度本身,而是图像的数量: http://jsfiddle.net/jATk4/ – brianforan

+0

我明白了。也许这更符合你所寻找的内容:http://jsfiddle.net/AyNY5/3/。我在For循环的范围之外看到imgHeight变量,然后每次迭代应用.9。它不是很干净,但希望它有帮助! –

+0

yup !!感谢您的帮助,我想我只是过于复杂了,因为我过去这样做过,只是让我的脚本遍布整个地方而错过了顺序。 – brianforan

0

此时图像没有style.height分配。它确实有height属性。

而不是

img.style.height = (img.style.height * .9) + "px"; 

尝试

img.style.height = (img.height * .9) + "px";