我正在尝试使用jQuery在数组中添加选择和输入值。 所以数组看起来像这样:
var testarr=[
[
"Option1",
"",
"Text1"
],
[
"Option2",
"Input_1",
""
]
];
带有空值。
在这里,我不做进一步介绍,如何将arraytest和arraytest_1结合起来,使其看起来像testarr?
var arraytest = [];
$('select').each(function(){
arraytest.push($(this).val()); });
var arraytest_1 = [];
$('input').each(function(){
arraytest_1.push($(this).val());
});
<div>
<select id="idTest1" class="select_css" name="selectTest[]">
<option value="" selected>Option</option>
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
</select>
<input type="text" class="input_css" data-room="1" name="input_1[]" />
<input type="text" class="input_css" data-other="1" name="input_2[]" />
</div>
<div>
<textarea name="textareaTest[]" placeholder="Test" class="textarea_css" id="textarea1"></textarea>
</div>
<div>
<select id="idTest2" class="select_css" name="selectTest[]">
<option value="" selected>Option</option>
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
</select>
<input type="text" class="input_css" name="input_1[]" />
<input type="text" class="input_css" name="input_2[]" />
</div>
<div>
<textarea name="textareaTest[]" placeholder="Test" class="textarea_css" id="textarea1"></textarea>
</div>
<button id="addButton">Values in Array</button>
<div id="arrlist"></div>
<script>
$("#addButton").on("click", function() {
var arraytest = [];
$('select').each(function(){
arraytest.push($(this).val());
});
var arraytest_1 = [];
$('input').each(function(){
arraytest_1.push($(this).val());
});
var testarr=arraytest+arraytest_1; //(var testarr=[["Option1","","Input2",""],["Option2","Input1","","Text"]];)
for(var i=0; i<testarr.length; i++) {
text = '<div>'+testarr[i][0]+'<br>'+testarr[i][1]+'</div><div>'+testarr[i][2]+'</div>';
$("#arrlist").append(text);
}
});
</script>
感谢您的帮助
答案 0 :(得分:0)
使用JQuery可以将数组与以下功能合并: https://api.jquery.com/jQuery.merge/
$.merge( [ 0, 1, 2 ], [ 2, 3, 4 ] )
这将输出:
[ 0, 1, 2, 2, 3, 4 ]
答案 1 :(得分:0)
答案 2 :(得分:0)
谢谢,但是我需要这样的数组:
var testarr=[["Option1","","Input2",""],["Option2","Input1","","Text"],...];
以便我可以在for循环中显示数据:
for(var i=0; i<testarr.length; i++) {
text = '<div>'+testarr[i][0]+'<br>'+testarr[i][1]+'</div><div>'+testarr[i][2]+'</div>';
$("#arrlist").append(text);
}
答案 3 :(得分:0)
我不知道为什么这个答案还没有发布,这是最简单的:
var arr1 = ['a', 'b'],
arr2 = ['c', 'd'],
result = [arr1, arr2];
console.log(result);
您的情况就是testarr = [arraytest, arraytest_1];
或者,如果您需要适用于任意数量数组的通用解决方案,请使用push
:
testarr = [];
testarr.push(arraytest);
testarr.push(arraytest_1);
//etc