jQuery构造多维关联数组
jQuery construct multidimensional associative 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'
]
]
这假设您的 html 结构始终是 div,带有 class 标签,后跟输入。
通过对您的 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);
我希望有人可以帮助我使用 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'
]
]
这假设您的 html 结构始终是 div,带有 class 标签,后跟输入。
通过对您的 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);