2014-09-12 170 views
-1

我想浓缩我的代码,因为我有很多重复编码发生。我将需要多次应用此相同的示例。我想创建一个for循环,但我的变量也需要增加。现在我有我的变量增加,但我无法实现我的细胞数据到变量。我想我是双重分配变种h。我无法弄清楚如何解决这个问题。感谢您的帮助。申请循环变量

For循环

for (var j = 2; j<15; j++){eval("var polebrea" +j); 
var h = ("polebrea" +j) 
} 

h = document.getElementById("part1Table").rows[10].cells[2].innerHTML; 

代码试图实施

polebrea2 = document.getElementById("part1Table").rows[10].cells[2].innerHTML; 
polebrea3 = document.getElementById("part1Table").rows[10].cells[3].innerHTML; 
polebrea4 = document.getElementById("part1Table").rows[10].cells[4].innerHTML; 
polebrea5 = document.getElementById("part1Table").rows[10].cells[5].innerHTML; 

(续15)

插入可变

<script>document.write(polebrea2)</script> 
+0

不要使用'eval'。创建一个可以索引的数组。 – 2014-09-12 16:32:09

+0

使用一个对象来存储它们,而不是为每个对象创建一个新变量。 'object [“polebrea”+ j]' – GillesC 2014-09-12 16:32:13

+3

动态命名变量是某处设计不好的标志。使用可以容纳某些东西的数据结构,如对象或数组。 – 2014-09-12 16:33:17

回答

0

忽略设计教条....使用的属性访问字符串形式的索引来设置变量:

// window is a bad place for this....you should probably put it on another object e.g. var polbreas = {}; 
for (var i = 2; i<15; i++){ 
    window["polbrea"+i] = document.getElementById("part1Table").rows[10].cells[i].innerHTML; 
} 
+0

谢谢约书亚,你的回答是正确的,我正在寻找,它的工作原理没有改变任何东西。我几次亲自接近这个,但不知道我哪里出错了。现在我所要做的就是使用(document.write(polbrea2)),它给了我正确的单元格。我有其他的if语句会拉动其他数字。 – 2014-09-13 14:55:09

-2

虽然不一定好做法,你在做什么,你可以试试这个:

var createVariable = function(index){ 
    var variableName = "polebrea" + index; 
    var objName = document.getElementById("part1Table").rows[10].cells[index].innerHTML; 
    return (variableName + " = " + objName + ";"); 
}; 

for (var j = 2; j<15; j++){ 
     var objToWrite = createVariable(j); 
     console.log(objToWrite); 
} 
+0

小心评论为什么downvote? – ochi 2014-09-15 21:31:24