【发布时间】:2015-01-27 07:02:19
【问题描述】:
我对这个嵌套循环束手无策。 我正在尝试创建一个对象,其中包含按包含 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;
});
控制台日志的结果是 div 的所有输入元素都有类似问题的开头,我得到了预期数量的新对象,它们都是动态命名的,但它们都包含相同的东西。
每个对象的内容并不特定于我试图从中生成它的这个对象,任何帮助将不胜感激!
【问题讨论】:
-
我不认为
each像你认为的那样工作 api.jquery.com/jquery.each -
我会看看那个。你认为还有什么其他功能可以做我想做的事情吗?
-
您可以使用
each执行此操作,但它不会将this重新分配给变量。放入index和value参数并使用value而不是this。 -
好的,我试试看。并根据我的结果在此处更新
-
另外,您似乎没有使用包含 div 来过滤任何内容。你可以做类似
var emptyTextBoxes = $(e.target).find('input.surveyInputs')...
标签: javascript jquery nested-loops