我正在尝试在数组<span class="">
中插入arrChairs[]
值,并将此数组插入对象room{}
中,显然我是以错误的方式执行,因为它不工作,这是代码:
HTML:
<div id="table">
<a href="" id="foo1">
<span class="chair1"></span>
<span class="chair2"></span>
<span class="chair3"></span>
<span class="chair4"></span>
</a>
<a href="" id="foo2">
<span class="chair1"></span>
<span class="chair2"></span>
</a>
<a href="" id="foo3">
<span class="chair1"></span>
<span class="chair2"></span>
<span class="chair3"></span>
</a>
</div>
JS:
room = {},
arrChairs = [];
$('#table a').each(function(i){
tableId = $('#table a:eq('+i+')').attr('id');
room[tableId] = {};
$('#table a:eq('+i+') span').each(function(i){
arrChairs.push( $(this).attr('class') );
});
room[tableId].chairs = arrChairs;
});
我不知道为什么它不起作用。
这是arrChair
在console.log上返回我的内容:
['chair1','chair2', 'chair3', 'chair4', 'chair1', 'chair2', 'chair1', 'chair2', 'chair3']
它连接了所有内容。一些帮助将不胜感激
答案 0 :(得分:2)
由于您没有为根<span class="">
中的每个arrChairs
初始化<a>
,因此您将<div>
放在一起。请尝试使用此功能:
room = {};
$('#table a').each(function(i){
tableId = $('#table a:eq('+i+')').attr('id');
room[tableId] = {};
var arrChairs = [];
$('#table a:eq('+i+') span').each(function(i){
arrChairs.push( $(this).attr('class') );
});
room[tableId].chairs = arrChairs;
});
使console.log
成为room
而不是arrChairs
。
希望这有帮助