下面的代码根据选中的响应选项创建JSON字符串。我想将已检查的响应选项ID链接到问题ID,并允许包含多个响应选项。如果选择了两个选项,则JSON字符串如下所示{" question0":[" options0"," options1"]}。下面的代码有效,但是,我想知道是否有更紧凑,更清洁的方式来做我想要的。这种代码风格是可以的还是可以改进的? 感谢
HTML布局
<div id="survey">
<div id="question0" class="question">Enter your question
<br>
<input id="options0" class="options-ready" type="checkbox">
<label class="opt-label">Yes</label>
<br>
<input id="options1" class="options-ready" type="checkbox">
<label class="opt-label">No</label>
<br>
</div>
<div id="question1" class="question">Enter your question
<br>
<input id="options2" class="options-ready" type="checkbox">
<label class="opt-label">Yes</label>
<br>
<input id="options3" class="options-ready" type="checkbox">
<label class="opt-label">No</label>
<br>
<input type='button' class='survey-submit' value='submit'>
</div>
</div>
JS代码来到这里:
$(function() {
$(".survey-submit").click(function () {
function checked(target) {
var arr = [];
target.each(function () {
if ($(this).prop("checked")) {
arr.push($(this).attr("id"));
} else {
return null;
}
});
return arr;
}
$(".question").each(function () {
var obj = {};
obj[$(this).attr("id")] = checked($(this).children(".options-ready"));
var json = JSON.stringify(obj);
});
});
});