简体   繁体   English

创建一个div子数组

[英]Create an array of div children

I have some rows with inputs. 我有一些输入行。 I want to create an array for each row which contains values of the inputs. 我想为包含输入值的每一行创建一个数组。 So if I have 3 rows, and values of 'input1' are 1, values of 'input2' are 2 and values of 'input3' are 3, the array would look like this: 因此,如果我有3行,并且'input1'的值是1,'input2'的值是2而'input3'的值是3,则数组如下所示:

[
    [1, 2, 3],
    [1, 2, 3],
    [1, 2, 3]
]

This is my HTML code: 这是我的HTML代码:

<div class="container">
    <div class="row">
        <input id="input1">
        <input id="input2">
        <input id="input3">
    </div>

    <div class="row">
        <input id="input1">
        <input id="input2">
        <input id="input3">
    </div>

    <div class="row">
        <input id="input1">
        <input id="input2">
        <input id="input3">
    </div>
</div>

How can I do it in jQuery? 如何在jQuery中做到这一点?

As far as I understand your question I would do something like this: 据我了解你的问题,我会做这样的事情:

var obj = {};

$('.row').each(function(ind1) {

  obj[ind1] = {};

  $(this).children().each(function (ind2) {

    obj[ind1][ind2] = $(this).val();

  });

});

HTML: HTML:

<div class="container">
    <div class="row">
        <input class="input1">
        <input class="input2">
        <input class="input3">
    </div>

    <div class="row">
        <input class="input1">
        <input class="input2">
        <input class="input3">
    </div>

    <div class="row">
        <input class="input1">
        <input class="input2">
        <input class="input3">
    </div>
</div>

Javascript: Javascript:

var data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

$('.container .row').each(function(row) {
  $(this).children().each(function (column) {
    $(this).val(data[row][column]);
  });
});

OR 要么

HTML: HTML:

<div class="container"></div>

Javascript: Javascript:

var data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

for(var i = 0; i < data.length; i++){
  var arr = data[i];
  var row = $(".container").append("<div class='row'></div>");
  for(var j = 0; j < arr.length; j++){
    var i_name = 'input-'+i+'-'+j;
    row.append('<input id="'+i_name+'" type="text" name="'+i_name+'" value="'+arr[j]+'">');
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM