我对JS和Query非常陌生,所以我认为这是一个非常简单的任务,我只想通过测试重写“循环”,从$.each()到$().each()和for循环。这是我的密码。
var tab = ["John", "Steve", "Ben", "Damon", "Ian"],
$list = $('#list');
$.each(tab,function(index,value){
$list.append("<li>"+ value+ "</li>");
});第二和第三循环不起作用:
tab.each(function(index){
$list.append("<li>"+ tab[index] + "</li>");
});和
for (var i,len=tab.length;i<len;i++) {
$list.append("<li>"+ tab[i]+ "</li>");
}怎么啦?
发布于 2014-08-26 12:15:40
正确初始化for循环时出错:
for (var i,len=tab.length;i<len;i++) {
//-------^ - Missing inital value.
$list.append("<li>"+ tab[i]+ "</li>");
}改为:
for (var i=0,len=tab.length;i<len;i++) {
$list.append("<li>"+ tab[i]+ "</li>");
}第二种方法不起作用,因为tab不是迭代的jQuery对象!:) $.each的语法是:
$.each(dataArray, function() { });或者,如果您有一个DOM jQuery对象:
$(Selector).each(dataArray, function() { });发布于 2014-08-26 12:15:06
您需要更改为var i=0, len=tab.length在
for (var i,len=tab.length;i<len;i++) {
$list.append("<li>"+ tab[i]+ "</li>");
}发布于 2014-08-26 12:17:20
如果您正在遍历Javascript数组,而不是jQuery选择,则必须使用$.each,这就是它的工作方式。
至于第三个例子,我需要用0初始化。否则,它是未定义的,与数组的长度相比,它始终是假的。
https://stackoverflow.com/questions/25505533
复制相似问题