[英]How do I access multiple HTML select elements in a for-loop?
這是我的HTML的要點。
<form name="formName">
<select name="mySelect" onchange="">
<option value="value 1">option 1</option>
<option value="value 2">option 2</option>
<option value="value 3">option 3</option>
<option value="value 4">option 4</option>
<option value="value 5">option 5</option>
<option value="value 6">option 6</option>
</select>
</form>
此代碼在表中的32個不同的<td>
被寫入32次。 我的目標是使用for循環訪問每個<select>
元素,並將選擇的任何值分配給變量。 到目前為止,我還無法做到這一點。 我想看看如何在不使用jquery的情況下完成此操作,但是如果jquery是最好的方式,我會開放想法。
假設它們都具有.mySelect
類。 如果沒有,只需向所有這些添加一個通用類。
JS解決方案
var selects = document.getElementsByClassName("mySelect");
for (i = 0; i < selects .length; i++) {
console.log(selects[i]);
}
jQuery解決方案
$('.mySelect').each(
function(index, value) {
console.log(value);
});
這是使用普通JavaScript選擇select
元素並將值存儲在數組中的一種方法:
var selects = document.querySelectorAll('table select');
var values = Array.prototype.map.call(selects, function(sel) {
return sel.value;
});
您可以將所有值添加到數組中,這是一種更好的方法。 嘗試以下
$('button').click(function(){ var selects = []; $('select').each(function(i){ selects.push($(this).val()); }); alert(selects); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <select name="mySelect" onchange=""> <option value="value 1">option 1</option> <option value="value 2">option 2</option> <option value="value 3">option 3</option> <option value="value 4">option 4</option> <option value="value 5">option 5</option> <option value="value 6">option 6</option> </select> <select name="mySelect" onchange=""> <option value="value 1">option 1</option> <option value="value 2">option 2</option> <option value="value 3">option 3</option> <option value="value 4">option 4</option> <option value="value 5">option 5</option> <option value="value 6">option 6</option> </select> <button>Run!</button>
AngularJS解決方案:
// table.html
<table ng-controller="tableController">
<tr ng-repeat="row in tableRows">
<td ng-repeat="col in row.cols">
<ng-include ng-src="tableElement.html">
</td>
</tr>
</table>
// tableElement.html
<form>
<select ng-change="selectChanged($event, row, col)">
<option value="value 1">option 1</option>
<option value="value 2">option 2</option>
<option value="value 3">option 3</option>
<option value="value 4">option 4</option>
<option value="value 5">option 5</option>
<option value="value 6">option 6</option>
</select>
</form>
// tableController.js
$scope.selectChanged = function($event, row, col){
// update the table, send an http request, or whatever
// not sure of the syntax here to get the changed selection:
$values[row][col] = $event.target.value;
}
//////////////////////
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.