For循环在Jquery中只运行一次
For loop only running once in Jquery
在jQuery中只运行一次for循环时出现问题。Users是一个包含4个项的数组,对于每个项,它应该将该项作为列表元素附加到userList中,userList是一个ul。它按预期追加数组中的第一个元素,但仅追加该元素。不确定为什么它没有贯穿整个阵列?
$(document).ready(function() {
var $currentUser = $('<li class="user"></li>');
for(var i = 0; i < users.length; i++) {
$currentUser.text(users[i]);
$currentUser.appendTo('.userList');
}
//alert(users.length) returns "4".
});
试试这个
$(document).ready(function(){
for(var i = 0; i < users.length; i++) {
var $currentUser = $('<li class="user"></li>');
$currentUser.text(users[i]);
$currentUser.appendTo('.userList');
}
});
您正在覆盖元素,而不是为每个用户创建一个新元素。请尝试上面的代码。
更多jQuery'ish
$('.userList').append(function() {
return $.map(users, function(user) {
return $('<li />', {
'class' : 'user',
text : user
})
});
});
FIDDLE
您不会为每次迭代添加新的<li>
:
这是一个有效的解决方案:
for (var i = 0; i < users.length; i++) {
$('<li class="user"></li>'
.text(users[i])
.appendTo('.userList');
}
https://jsfiddle.net/2abqa5us/1/
在循环的外部创建li
,然后尝试将同一元素的文本设置为每个用户,以便在每次迭代时覆盖它。你确定最后一个条目不是你看到的那个吗?
.text
将覆盖以前的文本,该文本看起来像是只有一个用户的
试试这个。
$(document).ready(function(){
for(var i = 0; i < users.length; i++) {
var $currentUser = $('<li class="user"></li>');
$currentUser.text(users[i]);
$currentUser.appendTo('.userList');
}
});
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- For循环在Jquery中只运行一次
- 谷歌图表在运行应用程序时只能显示一次
- 使函数只运行一次(Javascript)
- 更改路由后,运行一次js脚本
- 只运行一次提取的脚本
- 可能只在for循环内部运行一次代码块
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 在Flask中使用.getJSON请求时,只运行一次命令
- 运行“;非“;单击另一个函数中的函数仅一次
- JavaScript只有在最后一次被调用时才运行函数
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- 您可以在节点.js上一次运行多个应用程序吗?
- 如何一次运行一次循环javascript
- 从命令行一次运行大量摩卡测试的好方法是什么
- 如何让 JavaScript 一次运行一个字符串
- 无法在一次运行中删除多个数组元素
- 如何使jquery函数一次运行一个
- 在一次运行中分配并返回一个变量
- 一次运行2个动画