2010-11-09 154 views
0

我剛剛學習JavaScript。目前我正在做的是在我的聯繫表單上嘗試傳遞價值觀。多個變量值

function calculate(){ 
    var dr1=document.getElementById('numimg'); 
    var resultdrop=document.getElementById('total'); 
    resultdrop.value=0; 
    resultdrop.value=parseInt(resultdrop.value); 
    for(i=0;i<dr1.length;i++) 
     if(dr1.options[i].selected) 
      resultdrop.value=parseInt(resultdrop.value)+parseInt(dr1[i].value); 
} 

這一切都工作正常。如果有多個變量需要傳遞給resultdrop.value,則會出現問題

var dr1=document.getElementById('numimg'); 
var dr2=document.getElementById('numimg1'); 

不確定如何對此進行排序。任何人都可以幫助我嗎?

+1

你爲什麼試圖循環數組? 'dr1'將只包含一個元素的引用。 – 2010-11-09 14:44:07

+0

你給我們一些設置,但是你不解釋問題是什麼。你能詳細瞭解什麼是實際錯誤或不工作? – 2010-11-09 14:44:39

+0

@Marcel Korpel - 這個元素(numing)是下拉列表,其長度屬性實際上返回下拉列表中的選項數量,所以代碼確實是有效的。 @Dom - 你的代碼沒有傳遞任何值。它只是將選中的「numing」值添加到「resultdrop」值中,可能是表單中的隱藏字段。爲了獲得幫助,更好地解釋你正在努力達到的目標。 – 2010-11-09 14:49:11

回答

1

如果我猜的話,我會說,你的HTML可能看起來是這樣的:

<select id="numimg" name="numimg"> 
<!-- Some Options --> 
</select> 
<select id="numimg1" name="numimg1"> 
<!-- Some Options --> 
</select> 
<select id="numimg1" name="numimg1"> 
<!-- Some Options --> 
</select> 

的問題是,每個id必須是在您的整個HTML文檔獨特。如果您需要收集多個DOM元素,您可以:

  1. 使用document.getElementsByTagName並迭代該集合,提取出您需要的內容。
  2. 使用document.querySelectorAll根據CSS樣式查詢準確提取您需要的內容。
  3. 使用庫來爲您瀏覽瀏覽器之間的差異。 (我建議jQuery,但Mootools,Dojo和YUI是其他一些不錯的選擇。)

但正如我所說的,只是一個猜測 - 如果我們能看到你的HTML,將有助於解決問題。

+0

document.querySelectorAll對我有用。非常感謝您的幫助。 – Dom 2010-11-09 15:12:54

+0

(是的,'ids'重複 - 這是一個猜測OP的HTML如何顯示,而不是錯字 - 但是謝謝!) – 2010-11-09 15:28:59

+0

@Dom - 優秀!請注意,querySelectorAll在IE7或更低版​​本中不起作用。 – 2010-11-09 15:30:04