我在这个嵌套循环中的智慧结束。 我正在尝试创建一个对象,其中嵌套对象按包含div id分组。 到目前为止,这就是我所拥有的:
$('#survey-submit').on('click', function (e) {
var formData = {};
var item = {};
$("div[id^='question-']").each(function () {
var id = '#' + $(this).attr('id');
var $this = $(this);
formData[id] = $this.children('input, select,checkbox').each(function () {
item[this.name] = this.value;
});
//console.debug(formData);
});
console.debug(formData);
return false;
});
控制台日志的结果是具有start问题的div的所有输入元素,我得到所有动态命名的新对象的预期数量,但它们都包含相同的内容。
每个对象的内容并不特定于我想要生成的这个对象,任何帮助都将不胜感激!
答案 0 :(得分:0)
我在这里找到了问题的解决方案:jquery how to get form element types, names and values
我这样做了:
$("div[id^='question-']").each(function () {
var id = '#' + $(this).attr('id');
var $this = $(this);
var inputs= $(id+' :input').map(function(index, elm) {
return {name: elm.name, value: $(elm).val()};
}).get();
formData[id]=inputs;
});