jQuery构造多维关联数组

时间:2015-01-09 00:59:03

标签: jquery arrays multidimensional-array

我希望有人可以帮助我使用jQuery从HTML构建下面的数组。我已尝试使用下面的jQuery,但它没有正确输出数组:

我已将所有内容都放在jsfiddle

提前感谢您提供任何帮助

var options = [];
var a = 0;
$(".option").each(function(i) {
    options[a] = [];
    options[a]["label"] = $('.label', this).text();
    options[a]["value"] = $('input', this).val();
    a++;
});

这是我的HTML示例:

<div class="option">
<div class="label">Title</div>
<input type="text" value="TitleValue">
<div class="label">SKU</div>
<input type="text" value="SKUValue">
<div class="label">Currency</div>
<input type="text" value="CurrencyValue">
</div>

<div class="option">
<div class="label">Title</div>
<input type="text" value="TitleValue">
<div class="label">SKU</div>
<input type="text" value="SKUValue">
<div class="label">Currency</div>
<input type="text" value="CurrencyValue">
</div>

<div class="option">
<div class="label">Title</div>
<input type="text" value="TitleValue">
<div class="label">SKU</div>
<input type="text" value="SKUValue">
<div class="label">Currency</div>
<input type="text" value="CurrencyValue">
</div>

数组的结构应如下所示:

array = [

    "0" =>  [
                'Title' => 'TitleValue',
                'SKU' => 'SKUValue',
                'Currency' => 'CurrencyValue'
            ],

    "1" =>  [
                'Title' => 'TitleValue',
                'SKU' => 'SKUValue',
                'Currency' => 'CurrencyValue'
            ]

        ]

1 个答案:

答案 0 :(得分:1)

这假设您的html结构总是div,标签类后跟输入。

对你的html进行一些更改后,你可以减少它的脆弱性。也许将标签和输入与数据属性绑定在一起。

var options = [];
var a = 0;
$(".option").each(function (i) {
    options[a] = {};
    $(this).find('.label').each(function() {
        var title = $(this).text();
        var value = $(this).next('input').val();
        options[a][title] = value;
    });
    a++;
});

console.log(options);

http://jsfiddle.net/hrnzsegf/2/