构建
的简单方法是什么?{
type: [ "company", "product", "service" ]
}
出自:
<input type="radio" name="type" value="company">Company
<input type="radio" name="type" value="product">Product
<input type="radio" name="type" value="service">Service
使用任何库,例如jQuery或Underscore.js,还是普通的JavaScript?
一点点解释,因为它似乎令人困惑:
动态构造对象。这意味着这些HTML元素将生成所显示的对象,但如果name属性为“profile”,并且值不同,则结果为:
{
profile: [ "profile1", "profile2", "profile3" ]
}
答案 0 :(得分:1)
这应该可以使用jquery
轻松完成function getInputValues(name)
{
return $('input[name="' + name + '"]').map(function() {
return this.value;
}).get();
}
var data = {
type: getInputValues('type')
};
使用原生JavaScript:
function getInputValues(name)
{
return [].map.call(document.getElementsByName(name), function(item) {
return item.value;
});
}
但是,这假定您传递的名称始终是<input>
元素;如果这是一个问题,你应该使用查询选择器。
答案 1 :(得分:0)
这是一个非jQuery解决方案
var inputs = querySelectorAll("input[name=type]");
var obj = {};
obj.type = [].map.call(inputs, function(elem) {
return elem.value;
});