首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery $().each vs $.each() vs for循环

jQuery $().each vs $.each() vs for循环
EN

Stack Overflow用户
提问于 2014-08-26 12:11:42
回答 6查看 1.8K关注 0票数 0

我对JS和Query非常陌生,所以我认为这是一个非常简单的任务,我只想通过测试重写“循环”,从$.each()$().each()和for循环。这是我的密码。

代码语言:javascript
复制
var tab = ["John", "Steve", "Ben", "Damon", "Ian"],
    $list = $('#list');

$.each(tab,function(index,value){
    $list.append("<li>"+ value+ "</li>");
});

第二和第三循环不起作用:

代码语言:javascript
复制
tab.each(function(index){
    $list.append("<li>"+ tab[index] + "</li>");
});

代码语言:javascript
复制
for (var i,len=tab.length;i<len;i++) {
    $list.append("<li>"+ tab[i]+ "</li>");
}

怎么啦?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-26 12:15:40

正确初始化for循环时出错:

代码语言:javascript
复制
for (var i,len=tab.length;i<len;i++) {
//-------^ - Missing inital value.
    $list.append("<li>"+ tab[i]+ "</li>");
}

改为:

代码语言:javascript
复制
for (var i=0,len=tab.length;i<len;i++) {
    $list.append("<li>"+ tab[i]+ "</li>");
}

第二种方法不起作用,因为tab不是迭代的jQuery对象!:) $.each的语法是:

代码语言:javascript
复制
$.each(dataArray, function() { });

或者,如果您有一个DOM jQuery对象:

代码语言:javascript
复制
$(Selector).each(dataArray, function() { });
票数 5
EN

Stack Overflow用户

发布于 2014-08-26 12:15:06

您需要更改为var i=0, len=tab.length

代码语言:javascript
复制
for (var i,len=tab.length;i<len;i++) {
    $list.append("<li>"+ tab[i]+ "</li>");
}
票数 1
EN

Stack Overflow用户

发布于 2014-08-26 12:17:20

如果您正在遍历Javascript数组,而不是jQuery选择,则必须使用$.each,这就是它的工作方式。

至于第三个例子,我需要用0初始化。否则,它是未定义的,与数组的长度相比,它始终是假的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25505533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档