我正在尝试使用复选框列表的值创建一个JSON对象。
对象的关键属性应该是复选框ID,我是这样得到的。
var elementId = $(this).attr("id");
这是我完整的代码。
var ImportParameters = [];
$('#divImportOptions .ace').each(function (index, obj) {
debugger;
var elementId = $(this).attr("id");
var elementValue = $(this).is(':checked');
ImportParameters.push({ elementId : elementValue });
});
我当前的输出是这样的。
{elementId: true}
我的必填输出是这样的
{ chkAllowDetailsInfo : true}
我应该怎么做才能获得所需的输出?
答案 0 :(得分:2)
您可以使用map()
从jQuery对象集合中创建一个数组。要将变量用作对象的键,请用大括号[]
将其括起来:
var importParameters = $('#divImportOptions .ace').map(function() {
return { [this.id]: this.checked };
}).get();
console.log(importParameters);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divImportOptions">
<input type="checkbox" id="foo" class="ace" value="A" checked="true" />
<input type="checkbox" id="bar" class="ace" value="B" />
<input type="checkbox" id="fizz" class="ace" value="C" checked= "true" />
<input type="checkbox" id="buzz" class="ace" value="D" />
</div>