我希望有人可以帮助我使用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'
]
]
答案 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);