javascript - 使用 jquery 添加带有循环的 div 并将 div 设置为变量

标签 javascript jquery html css

我对这种行为很好奇。为什么这只会创建一个div :

let text = 'some text';
let $div = $('<div></div>');
$div.text(text);
for (let x = 0; x < 5; x++) {
  $('article').append($div);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<article></article>

如果我将附加更改为 ("</div>" + text + '</div>');然后它创建了五个。似乎div在循环中被覆盖,但它不应该每次都附加一个新的吗?为什么会覆盖?

最佳答案

就像罗里提到的那样,您引用的是相同的 <div>循环开始之前创建的元素。要每次添加一个新的,您可以编写:

let text = 'some text';
for (let x = 0; x < 5; x++) {
  $('article').append('<div>' + text + '</div>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<article></article>

jQuery 的 append()用途非常广泛,它接受 :DOM 元素、文本节点、元素数组、HTML 字符串或 jQuery 对象。详情here

关于javascript - 使用 jquery 添加带有循环的 div 并将 div 设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882316/

相关文章:

javascript - 如何在重试 Ajax 场景中消除这种丑陋的重复代码?

jquery - 无法使用 jayq 绑定(bind)到 keydown 事件

javascript - 如何使div靠近父DIV

php - 每页内容不变

java - 将数据从 select 标签发送到 servlet

html - 倾斜容器内的矩形大小

javascript - 在 jQuery 中使用带有符号的 html() 方法

javascript - KnockoutJs 计算 - 'Is not a function'

javascript - 将字符串解析为类似命令行的数组

javascript - 如何在 EmberJs 中渲染条件 Action ?