我有以下html:
<tr class="row">
<td>row 1</td>
<td><input type="text" class="user-input"></td>
<td><input type="text" class="user-input"></td>
</tr>
<tr class="row">
<td>row 2</td>
<td><input type="text" class="user-input"></td>
<td><input type="text" class="user-input"></td>
</tr>假设表单获得了以下输入
row1 |a|b
row2 |c|d
我想从表中获取以下对象:
[{a,b}, {c,d}]我尝试使用.each来获取这些值
$(".row .user-input").each( function() {
...
});然而,我只能使用上面的行得到a,b,c,d。我想知道是否有一种方法可以使用像嵌套的each这样的东西来达到这个目的。
谢谢你的帮助!
发布于 2015-11-25 11:58:26
我认为您需要的是一个数组数组,然后您可以迭代每一行,然后迭代该行中的每一个输入,如下所示
var values = $('.row').map(function() {
return [$(this).find('.user-input').map(function() {
return $(this).val();
}).get()];
}).get();
$('pre').html(JSON.stringify(values));<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="row">
<td>row 1</td>
<td>
<input type="text" class="user-input" value="a">
</td>
<td>
<input type="text" class="user-input" value="b">
</td>
</tr>
<tr class="row">
<td>row 2</td>
<td>
<input type="text" class="user-input" value="c">
</td>
<td>
<input type="text" class="user-input" value="d">
</td>
</tr>
</table>
<pre></pre>
发布于 2015-11-25 12:40:12
arr = [];
$('.row').each(function(o) {
var inner = [];
$('.user-input', this).each(function(e) {
inner.push($(this).val());
});
arr.push(inner);
});-
<table>
<tr class="row">
<td>row 1</td>
<td>
<input type="text" class="user-input" value="a">
</td>
<td>
<input type="text" class="user-input" value="b">
</td>
</tr>
<tr class="row">
<td>row 2</td>
<td>
<input type="text" class="user-input" value="c">
</td>
<td>
<input type="text" class="user-input" value="d">
</td>
</tr>
</table>请在这里输入:http://codepen.io/anon/pen/OyYdpq
https://stackoverflow.com/questions/33908219
复制相似问题