根据每行输入动态推送数组 [英] Pushing arrays based on each row inputs dynamically
问题描述
基于我的代码,我想将每一行的输入推入每个数组.如果是row1,则应将第1行的所有输入值推入数组a1
.第二行的输入应推入数组a2
,依此类推.
Based on my code I want to push each row's inputs to each array. If it is row1, it should push all the input values of row 1 to array a1
. The second row's inputs should be pushed to array a2
and so on.
这主要是为了优化我的代码,因为我的真实代码行超过20,并且我试图像下面那样执行,但没有成功.
This is mainly for performance optimization of my code since the rows of my real code are 20+ and I am trying to do it like below but without success.
我希望能够知道每一行的数据(用于验证)
I want to be able to know each row's data (for validation purpose)
$('#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>
推荐答案
我认为你是这个意思.
我试图尽可能地靠近您的代码,以免吓到您使用JavaScript
I tried to stay as close to your code as possible to not scare you off JavaScript
$('#check').click(function(event){
event.preventdefault;
var a=[];
$("[id^=row]").each(function() { // for each row
var idx = a.length; // find how many entries in a
a[idx]=[]; // add a new array
$(this).find("td input").each(function(i) { a[idx].push(this.value); }); // fill the array
});
var output = ""; // initialise a string
for (var i=0;i<a.length;i++) { // loop over a's items
output += "a["+i+"]:"+a[i].join(","); // join each array with comma
output += "<br/>";
}
$('#output').html('<h4>Pushed arrays:</h4>'+output);
});
<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>
这篇关于根据每行输入动态推送数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!