在javascript for for循环中更改值

时间:2014-01-28 12:30:06

标签: javascript html perl

我有一个使用两个Javascript循环生成表的表单。这是代码 - 非常简化。 (我在X和y循环之间有更多的代码,并且已经省略了perl脚本的其余部分)

   for (x=0; x<questions.length; x++){


for (y=1; y<questions[x].length; y++){
var code='<tr><td colspan="2" align="center" bgcolor="#dddddd"><hr width="70%"></td></tr>'
+'<tr><td bgcolor="'+tab_col[x][y]+'" valign="top">'
+'<font class="main2"><font color="'+text[x][y]+'">'+questions[x][y]+'</td>'
+'<td bgcolor="#dddddd"><font class="small2"><b>Cell color<br>'
+'<input type="text" onChange="return update(1,'+x+','+y+',this.value);" size="8" maxlength="7" name="cell_cols'+x+'_'+y+'" value="'+tab_col[x][y]+'"><br>'
+'<b>Text color</b><br><input type="text" onChange="return update(2,'+x+','+y+',this.value);" size="8" maxlength="7" name="ans_cols'+x+'_'+y+'" value="'+text[x][y]+'"></td></tr>'
+'<tr><td><hr size="10" color="'+line[x][y]+'" name="line_'+x+'_'+y+'"></td><td  bgcolor="#dddddd"><font class="small2"><b>Bar Graph</b></font><br>'
+'<input type="text" onChange="return update(3,'+x+','+y+',this.value);" size="8" maxlength="7" name="bar_line'+x+'_'+y+'" value="'+line[x][y]+'"></td></td></tr>';
document.write(code);
}

}

你可以看到,在底部,我给了一个HR标签值为name="line_'+x+'_'+y",,并且在函数调用u pdate(3,'+x+','+y+',this.value)之下。 (当用户输入新颜色时 - 该值会弹出到功能(未显示))

在这个函数中,我的理论是使用:document.formname['line_'+x+'_'+y].value=col; or document.getElementById('line_'+x+'_'+y).value=col;

会改变HR标签的颜色......但在所有情况下,它都会告诉我该项目不存在(null)**使用和不使用“.value”尝试过它,但没有任何区别。

我认为这是因为它不是HTML代码的物理部分,因此无法看到。你可以解决吗?

请记住,页面上可能有任意数量的X问题,每个问题都有可变数量的Y答案。一旦我破解了这个,我需要设置“单元格颜色”和“文本颜色”

**如果您想知道,它是一个调查脚本,它将显示用户定义颜色的问题和选项,并以条形图结果显示用户定义的颜色。目前,我要求用户在表单上输入颜色,然后单击预览按钮。但是要聪明 - 我现在正在尝试修改脚本,以便动态更新屏幕颜色。

功能更新的格式为(1-2或3,x,y,col),其中1 =表格单元格颜色,2 =文本颜色3 =条形图颜色。 X是问题编号,y是答案编号,例如1-5

1 个答案:

答案 0 :(得分:0)

尝试在HR中使用'id'属性而不是'name'。这应该让getElementById更加快乐。