【问题标题】:jQuery not looping through divs with dynamic namesjQuery 不循环遍历具有动态名称的 div
【发布时间】: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 更容易使用。
  • 我建议你删除这个问题,这样你就不会得到任何/太多的反对票

标签: jquery arrays dynamic


【解决方案1】:

原来我是个白痴。 “floors”数组中的值是 Bx,我试图像 x 一样附加它们。谁看到了,没有奖品。

【讨论】:

  • 刚刚通过小提琴找到了。您正在尝试查找不存在的“roomPrefBB11”。
猜你喜欢
  • 2015-12-23
  • 2012-07-22
  • 2018-09-26
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
相关资源
最近更新 更多