【发布时间】:2018-08-18 18:58:15
【问题描述】:
根据我的代码,我想将每一行的输入推送到每个数组。如果是第 1 行,它应该将第 1 行的所有输入值推送到数组a1。第二行的输入应该被推送到数组a2 等等。
这主要是为了我的代码的性能优化,因为我的真实代码的行数是 20+,我正在尝试像下面这样但没有成功。
我希望能够知道每一行的数据(用于验证目的)
$('#check').click(function(event){
event.preventdefault;
var a1=[];var a2=[];
$("[id^=row]").find("td input").each(function(i) { a[i].push(this.value); });
$('#output').html('<h4>Pushed arrays:</h4>a1: ['+a1 +'] <br/> a2: ['+a2+']');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr id="row1">
<td>1</td>
<td><input type="text" value="0" size="4"></td>
<td><input type="text" size="4"></td>
<td><input type="text" size="4"></td>
<td><input type="text" value="0" size="4"></td>
</tr>
<tr id="row2">
<td>1</td>
<td><input type="text" size="4"></td>
<td><input type="text" value="1" size="4"></td>
<td><input type="text" value="0" size="4"></td>
<td><input type="text" size="4"></td>
</tr>
</table>
<button id="check">Check Values</button>
<div id="output"></div>
【问题讨论】:
-
你有一些代码错误:这一行的第一个你忘了关闭字符串表达式,应该是这样的:
$('#output').html('<h4>Pushed arrays:</h4>a1: ['+a1 +'] <br/> a2: ['+a2+']');和第二个你不能做a[i]并期望它找到一个a2或a1的变量,相反它将尝试在位置i处查看变量a。你可以这样做:[`a${[i]}`].push(this.value);
标签: javascript jquery arrays performance optimization