我有多个 <div>
s,基于 <select>
,其中每个包含多个 <input>
s,有时是残疾人 <select>
具有固定值。现在我试图遍历每个 div 并将所有输入和选择值放入一个 array 并将该数组插入“master”数组。
然而,这似乎不太奏效。
我觉得我已经接近但到目前为止。 :(
var dummy = [];
for(var i = 1; i <= toSend.count; i++){
var temp = [];
$("div[data-row="+i+"]").children('input, select').each(function(){
temp.push( $(this).val() );
});
dummy.push(temp);
};
console.log(dummy);
toSend.count 是用data-row
计算多少个div存在。
HTML 看起来像这样:
<div id="container">
<div data-row="1">
<input type="text"/>
<input type="text"/>
</div>
<div data-row="2">
<input type="text"/>
<input type="text"/>
</div>
</div>
啊啊啊,别介意这是我自己的愚蠢!我正在通过 AJAX 生成 div
我自己复制粘贴了一个错误。
所有的 div 都有 data-row=1
,难怪它把所有东西都打包在一个数组中>。<
最佳答案
(编辑:付费阅读更完整的代码)
由于 toSend
变量只是具有 data-row
属性的 DIV,因此无需遍历 toSend
来查找 DIV:
var dummy = [];
$("#container div[data-row]").each(function() {
var temp = [];
$(this).children("input, select").each(function() {
temp.push(this.value);
});
dummy.push(temp);
});
在此之后,您甚至可能根本不需要 toSend
变量。
关于javascript - 使用数据属性循环遍历 div 中的每个子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585428/