从Jquery元素获取JSON?
我有这个 HTML从Jquery元素获取JSON?,jquery,json,Jquery,Json,我有这个 HTML <select class="form-control" required name="article"> <option value="Coca Cola">Coca Cola</option> </select> <input class="form-control number-input" value="" name="qty" type="text"> <select class="for
<select class="form-control" required name="article">
<option value="Coca Cola">Coca Cola</option>
</select>
<input class="form-control number-input" value="" name="qty" type="text">
<select class="form-control" required name="article">
<option value="Jupi">Jupi</option>
</select>
<input class="form-control number-input" value="" name="qty" type="text">
<select class="form-control" required name="article">
<option value="Fanta">Fanta</option>
</select>
<input class="form-control number-input" value="" name="qty" type="text">
我需要的是得到新的JSON,它看起来像这样
var invoicesGet = [{
"invoice": "1",
"article": "Coca Cola",
"qty": "2042"
}, {
"invoice": "1",
"article": "Jupi",
"qty": "232"
}, {
"invoice": "1",
"article": "Fanta",
"qty": "45"
}]
这是我现在拥有的工作小提琴:
我想我得到了所有元素的值,顺序是这样的,但我不知道如何将所有这些json组合成一个,并添加invoiceNumber?
我不知道将添加多少个inout,它们是友好添加的在JS之后创建一个对象数组:
var invoicesGet = [];
for (var i in articles) {
invoicesGet.push({
invoice: invoiceNumber,
article: articles[i],
qty: qty[i]
});
}
更新的实时代码:
生成如下输出:
[{“发票”:1,“文章”:“可口可乐”,“数量”:“12”},{“发票”:1,“文章”:“Jupi”,“数量”:“34”},{“发票”:1,“文章”:“Fanta”,“数量”:“56”}]
使用.next()查找下一个数量输入,并返回对象,然后转换为JSON
var articles = $('[name~=article]').map(function () {
var qtyVal = $(this).next("[name=qty]").val();
return {
invoice: invoiceNumber,
article: $(this).val(),
qty: qtyVal
};
}).get();
JSFiddle:这个话题怎么样
var articles = $('[name~=article]').map(function () {
var qtyVal = $(this).next("[name=qty]").val();
return {
invoice: invoiceNumber,
article: $(this).val(),
qty: qtyVal
};
}).get();