我将某些输入值推送到array
时出现问题。我有一个可以克隆的div
类optiondiv
。这个div有一些表行,其中包含一些输入字段,如下所示:
<div class="optiondiv">
<table class="tableOptions">
<tr>
<td>
<input type="text" class="title">
</td>
<td>
<input type="text" class="position">
</td>
<td>
<select class="input">
<option value="1">Drop-down</option>
<option value="2">Radio Buttons</option>
<option value="3">Checkbox</option>
<option value="4">Multiple Select</option>
</select>
</td>
<td>
<input type="checkbox" class="required"> Required?
</td>
</tr>
</tbody>
</table>
</div>
我试图获取该选项的所有输入字段,为每个选项,然后将它们推送到数组。问题是,没有“分裂”的问题。每个选项之间。如果我使用console.log();
,则值将按如下方式打印:[Doors, 1, Windows, 5]
但我真正想要的是
[0][Doors, 1]
[1][Windows, 5]
这是我正在使用的代码:
$('.generateString').click(function (e)
{
e.preventDefault();
$('.optiondiv').each(function(){
var arrText = new Array();
$('input[type=text]').each(function ()
{
if($(this).val() != ''){
// arrText.push('nietleeg');
arrText.push($(this).val());
}
})
console.log(arrText);
})
});
快乐的编码!
答案 0 :(得分:1)
首先,而不是
$('input[type=text]').each(function ()
你需要使用它来获取每个.optiondiv
中的输入元素$(this).find('input[type=text]').each(function ()
根据您的要求,只需在外部定义数组变量,并在每个循环内创建关联数组,如下所示
$('.generateString').click(function(e) {
e.preventDefault();
var arrText = new Array();
$('.optiondiv').each(function(i) {
if (typeof arrText[i] == "undefined")
arrText[i] = new Array();
$(this).find('input[type=text]').each(function() {
if ($(this).val() != '') {
// arrText.push('nietleeg');
arrText[i].push($(this).val());
}
})
console.log(arrText[i]);
})
console.log(arrText);
});