合并每个jQuery数组(函数)

时间:2019-04-18 07:15:19

标签: javascript jquery html

我正在尝试使用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>

感谢您的帮助

4 个答案:

答案 0 :(得分:0)

使用JQuery可以将数组与以下功能合并: https://api.jquery.com/jQuery.merge/

$.merge( [ 0, 1, 2 ], [ 2, 3, 4 ] )

这将输出:

[ 0, 1, 2, 2, 3, 4 ]

答案 1 :(得分:0)

您可以使用$ .extend()

var testarr = $.extend({}, arraytest , arraytest_1);

jQuery.extend()

答案 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