我有这个 的 HTML
<select class="form-control" required="" name="article">
<option value="Coca Cola">Coca Cola</option>
<option value="Carnex">Carnex</option>
</select>
<select class="form-control" required="" name="article">
<option value="Fanta">Fanta</option>
<option value="Sprite">Sprite</option>
</select>
我需要的是获得选择的价值并制作一个像这样的新json
var articlesSelected =
[{
"article" : "Coca Cola"
},{
"article" : "Fanta"
}
];
var selects = array();
selects = $('[name~=article]').val();
答案 0 :(得分:2)
.val()
仅返回集合中第一个元素的值。您需要使用.each()
或.map()
:
var selects = $('[name=article]').map(function() {
return { article: this.value };
}).get();
答案 1 :(得分:1)
尝试在此上下文中使用$.each()
来优雅地完成任务,
var articlesSelected = $.map($('select[name="article"]'), function (val, _) {
var newObj = {};
newObj.article = val.value;
return newObj;
});
答案 2 :(得分:0)
啊!你可以这样做:
var articles = $('select').map(function(){ return $(this).val() }).get();
var json = JSON.stringify([{article:articles[0]},{article:articles[1]}]);