2014-01-28 39 views
0

我有一個窗體,使用兩個Javascript循環生成表。這裏是代碼 - 非常簡單。 (我有X和Y環路之間更多的代碼,並且已經省略了Perl腳本的其餘部分)更改JavaScript中的值爲循環

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

回答

0

嘗試在HR中使用'id'屬性而不是'name'。這應該讓getElementById更快樂。

+0

Doh!談論「看不見樹林的木頭!」花了大約三個小時到目前爲止令人困惑! (那個,我需要「style.color = col」所以它現在讀取代碼中的「+ \\」... bar_line + \\'x + \\'_ \\'+ y ... \\'「 ,並在函數document.getElementById(\\'bar_line \\'+ x + \\'_ \\'+ y).style.color = col使用正確的語法時很簡單!!(打擾雙線,但可以看不到如何在不打開斜體的情況下添加單引號 – Cristofayre

+0

我知道這是怎麼回事......太好了:) – hammer