在 for 循环中附加项目 - jquery
2015-08-30
3948
我正在通过 Javascript 添加一个简单的切换按钮。然后我想在其中添加三个 span 标签。
因此,我正在创建 span 变量并尝试将其附加到我们自己的基本 FOR 循环中。迭代次数为 3 次。
下面是我的基本代码。请告诉我缺少或放错了什么,导致我的 span 标签拒绝多次附加。我在检查模式下检查了这一点。
然后,我打开控制台选项卡, i 的值为 3。附加意味着 附加 而不是 替换 元素。对吗?
var $navbar_header = $('<div class="navbar-header"></div>');
var $button = $("<button></button>");
var $span = $('<span class="icon-bar"></span>');
for (var i = 0; i < 3; i++) {
$button.append($span);
}
$button.addClass('navbar-toggle');
$navbar_header.append($button);
$("#menu").append($navbar_header);
这是指向 fiddle 的 链接 。
1个回答
DOM 是一棵树,其中任何元素都指向其父元素(请参阅 parentNode )。一个元素只能有一个位置。因此,当您附加一个元素时,您会将其从其先前的位置移除。
此处的解决方案是克隆元素:
$button.append($span.clone());
或者只是在循环中创建它:
for (var i = 0; i < 3; i++) {
$button.append('<span class="icon-bar"></span>');
}
Denys Séguret
2015-08-30