不好意思,我是一個js的新手,可以說是完全不會,所以請各位大大幫忙一下了,
<tr>
<td>AA</td>
<td>BB</td>
<td>CC</td>
<td>DD</td>
</tr>
<tr>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
<td><input type='text' name='ans[7][]'></td>
</tr>
<tr>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
<td><input type='text' name='ans[8][]'></td>
</tr>
<tr>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
<td><input type='text' name='ans[9][]'></td>
</tr>
我有一個表單,他每一筆都是一個陣列,請問如果要取ans[9][3],js的部份要怎麼寫呢??
麻煩各位了!!
你並沒有一個input的name屬性的值是ans[9][3],這樣取永遠取不到。不過可以透過name屬性的值是ans[9][]來找:
<pre class="c" name="code">
var result = document.getElementsByName('ans[9][]')[3].value;
謝謝 fillano 大大您抽空回謝,真的感謝。
我大能知道怎麼取值了。但目前有個問題:
我的name是從 ans[1][] ~ ans[10][]
我想說用一個for迴圈,把這些value相加,
於是我發現了一個問題,就是在單引號內可以直接加變數嗎??
for (var $i=1; $i<11; $i++){
var val = document.getElementsByName('ans[i][]')[3].value;
sum += parseInt(val);
}
你的變數名稱怎麼不一致?前面叫$i後面叫i??
另外,不必在引號內加,'ans['+i+'][]'就可以了阿。
還有,javascript的陣列索引是從0開始的,你從1開始編號不是不行,但是怕不小心會跟後面的陣列索引搞混。所以盡量一致,從0開始吧。