如何在jQuery

时间:2017-01-22 03:20:58

标签: javascript jquery arrays multidimensional-array

我需要最终得到一个包含多个子数组的父数组,以便能够通过ajax帖子发送它。

我的HTML:

<tr class="row">
    <td><input type="text" /></td>
    <td><input type="date" /></td>
    <td><input type="number /></td>
    <td><input type="number /></td>
</tr>
<tr class="row">
    <td><input type="text" /></td>
    <td><input type="date" /></td>
    <td><input type="number /></td>
    <td><input type="number /></td>
</tr>

我的javascript:

var detail = new Array()
$("tr.line").each(function(){
    var row = new Array();
    $("tr.line input").each(function(){
        row.push(this.value);
    });
    detail.push(row);
});

但这不是我需要做的事情

detail = array(
    row = array(
        text: ...,
        date: ...,
        number: ...,
        number: ...
    )
    row = array(
        text: ...,
        date: ...,
        number: ...,
        number: ...
    )
)

1 个答案:

答案 0 :(得分:2)

您的结果row = Array(text: ...)更适合key: value对象。{ HTML:

<tr class="line">
    <td><input name="text1" type="text" /></td>
    <td><input name="date1" type="date" /></td>
    <td><input name="number1" type="number /></td>
    <td><input name="number2" type="number /></td>
</tr>

JS:

var detail = [];
$("tr.line").each(function(){
    var row = {};
    $(this).find('input').each(function(){
        row[this.name] = this.value;
    });
    detail.push(row);
});

结果:

detail = [
    {
        text1: ...,
        date1: ...,
        number1: ...,
        number2: ...
    }
]