【发布时间】:2016-01-12 06:52:34
【问题描述】:
我正在尝试遍历一组“楼层”,为每个楼层制作一个按钮,为“房间”div 制作一个容器,然后遍历容器并填充“房间”。本质上,我想从一个数组中创建一堆 div,然后从数组中创建一堆 div。
当我创建容器时,我给它们一个递增的 id(容器是 roomPref;是的,我意识到有一个叫做 roomContainer 的东西,现在是偶然的):
$.each(floors, function(index, value)
{
$(document.getElementsByClassName("floorPref")).append('<a>' + value + '</a> <div class="roomContainer"> <div class="roomPref" id="roomPref'+value+'"> </div> </div>');
});
然后我尝试通过 id 遍历并填充房间,但无论出于何种原因它都不起作用:
$.each(floors, function(index1, value1)
{
$.each(rooms, function(index2, value2)
{
$(document.getElementById('roomPrefB'+value1)).append('<a>' + value2 + '</a>');
});
});
目前我使用假数组进行测试,如下:
var floors = [];
for(i = 0; i < 11; i++)
{
floors[i] = "B";
floors[i] += i+1;
}
var rooms = [];
for(i = 0; i < 100; i++)
{
rooms[i] = i+1;
}
知道附加到命名元素“roomPrefB1”确实有效,并且通过按类名获取来附加到所有元素会填充所有元素,这让我相信这可能是我的方式有问题'正在写动态名称'roomPrefB'+value1,除了我尝试了几种方法,这个方法似乎正确。
提前感谢您的帮助。
【问题讨论】:
-
也显示你的
html.. -
“然后我尝试迭代”“jquery 未找到” -
$(document.getElementById('roomPrefB'+value1))不是 jquery - 它是找不到 'roomPrefB1' 的 javascript。尝试将其更改为$("#roomPrefB" + value1) -
出于好奇,我做了并且效果相同 - jQuery 方法有优势吗?
-
是的,您发现这不是问题所在。通常不要将 'getElementById' 之类的 javascript 命令与
#之类的 jquery 命令混合使用——它看起来很笨重,而且更难使用。#id和.class更容易使用。 -
我建议你删除这个问题,这样你就不会得到任何/太多的反对票