Javascript 使用动态表单jquery创建多维数组
我有下面的表单,如果用户单击链接添加更多项目,我会动态添加更多与这些完全相同的下拉列表Javascript 使用动态表单jquery创建多维数组,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,我有下面的表单,如果用户单击链接添加更多项目,我会动态添加更多与这些完全相同的下拉列表 <div class="dynamic-sale"> <select name="sizes[]" id="sizes" class="entry-dropdown"> <option value="3XL">3XL</option> <option value="2XL">2XL</option&g
<div class="dynamic-sale">
<select name="sizes[]" id="sizes" class="entry-dropdown">
<option value="3XL">3XL</option>
<option value="2XL">2XL</option>
<option value="XL">XL</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="YL">YL</option>
<option value="YM">YM</option>
</select>
<select name="number[]" id="amount" class="entry-dropdown">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select name="price[]" id="price" class="entry-dropdown">
<option value="15">$15</option>
<option value="12.5">$12.5</option>
<option value="10">$10</option>
<option value="0">Free</option>
</select>
</div>
但当我测试它时,我得到的只是一个数组:[XL,3,15,3XL,1,15]
以可用格式获取数据的最佳方式是什么
我希望这是有道理的!
谢谢您必须遍历每个动态销售元素。然后,循环遍历子数组,并将值添加到子数组中
var result = []; // <-- Main array
$(".dynamic-sale").each(function(){
var individual_result = []; // <-- "sub"-array
$(this).find("select").each(function(){
individual_result.push($(this).val());
})
result.push(individual_result); // <-- Add "sub" array to results
});
您必须遍历每个动态销售元素。然后,循环遍历子数组,并将值添加到子数组中
var result = []; // <-- Main array
$(".dynamic-sale").each(function(){
var individual_result = []; // <-- "sub"-array
$(this).find("select").each(function(){
individual_result.push($(this).val());
})
result.push(individual_result); // <-- Add "sub" array to results
});
这有点不同,但像这样的想法可能是:
var data = [];
$("#order-submit").click(function () {
$(".dynamic-sale").each(function () {
var $saleDiv = $(this);
data.push({
size: $saleDiv.children(".size-dropdown").val(),
amount: window.parseInt($saleDiv.children(".amount-dropdown").val(), 10),
price: window.parseFloat($saleDiv.children(".price-dropdown").val())
});
});
});
然后,您将得到一个对象数组,每个对象表示表中的一行,类似于:
[
{size: "3XL", amount: 1, price: 0},
{size: "M", amount: 7, price: 12.5}
...
]
这有点不同,但像这样的想法可能是:
var data = [];
$("#order-submit").click(function () {
$(".dynamic-sale").each(function () {
var $saleDiv = $(this);
data.push({
size: $saleDiv.children(".size-dropdown").val(),
amount: window.parseInt($saleDiv.children(".amount-dropdown").val(), 10),
price: window.parseFloat($saleDiv.children(".price-dropdown").val())
});
});
});
然后,您将得到一个对象数组,每个对象表示表中的一行,类似于:
[
{size: "3XL", amount: 1, price: 0},
{size: "M", amount: 7, price: 12.5}
...
]
这就是我要找的。现在这很有道理。谢谢这就是我要找的。现在这很有道理。谢谢