从过去的5个小时开始,我试图解决一件事情,并认为几乎成功了,但是由于无法获得想要的结果而卡在某个地方。我认为在这里我需要一些专家级的帮助来纠正我做错的地方。
var eduarray = [];
$('.education-groupbox').each(function(index, el) {
eduarray[index] = [];
var s = $(this).attr('id');
//console.log();
$('#'+s+' .inputs').each(function(key, value) {
//eduarray['index'].push("rohit");
});
});
我想得到的是每个循环中具有多个数组的对象格式的结果,以便我可以通过formdata发送数据并处理php表单。
<div id="education-groupboxwrapper">
<div id="education-groupbox" class="education-groupbox">
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" />
</div>
<div class="inputs col-3">
<label for="email">Okul Adı</label>
<input type="text" name="email" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" />
</div>
</div>
</div>
最佳答案
从您的代码中,我发现一些错误,因为ID是唯一的,所以$('#'+s+' inputs').each
无法使用,请改用类,这样您就可以在同一个输入组下使用相同的类名进行多个输入。
使用eduarray[index].push($(this).val());
将值推入数组。$('.education-groupbox').each
将循环遍历<div class="education-groupbox">
的每个HTML块,因此在每个使用$(this).find('input')
的内部将返回该块内的所有输入,然后可以使用每个将所有输入值推入数组。
var eduarray = [];
$('.education-groupbox').each(function(index, el) {
var _this = $(this);
eduarray[index] = [];
_this.find('input').each(function(key, v) {
eduarray[index].push(v.value);
});
});
console.log('eduarray[0] -->' + eduarray[0]);
console.log('eduarray[1] -->' + eduarray[1]);
console.log('eduarray -->' + eduarray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="education-groupboxwrapper">
<!-- groupbox 1 -->
<div class="education-groupbox">
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test1" />
</div>
<div class="inputs col-3">
<label for="email">Okul Adı</label>
<input type="text" name="email" value="test2" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test3" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test4" />
</div>
</div>
<!-- groupbox 2 -->
<div class="education-groupbox">
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test111" />
</div>
<div class="inputs col-3">
<label for="email">Okul Adı</label>
<input type="text" name="email" value="test222" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test333" />
</div>
<div class="inputs col-3">
<label for="email">Bölüm</label>
<input type="text" name="email" value="test444" />
</div>
</div>
</div>