从for循环内调用jQuery.append()。(关闭问题?)
我有一种预感,这可能与关闭(或缺少关闭)有关 下面是我使用的jQuery:从for循环内调用jQuery.append()。(关闭问题?),jquery,closures,append,Jquery,Closures,Append,我有一种预感,这可能与关闭(或缺少关闭)有关 下面是我使用的jQuery: function appendToWrapper(wrapper, newNode, loop, version){ newNode .text(loop+version); wrapper .append(newNode); } var template = $("<div></div>"); for(i=0;i<10;i++){ appendToWr
function appendToWrapper(wrapper, newNode, loop, version){
newNode
.text(loop+version);
wrapper
.append(newNode);
}
var template = $("<div></div>");
for(i=0;i<10;i++){
appendToWrapper($('#wrapper'), template, i, 'a');
appendToWrapper($('#wrapper'), template, i, 'b');
}
但这就是我的结局
9b
我认为这是一个结束的问题,对吗?关于解决这个问题的方向有什么提示吗?(我仍在努力摆脱封闭状态) 您需要为每个迭代创建一个div。 将代码更改为如下所示:
function appendToWrapper(wrapper, newNode, loop, version){
newNode
.text(loop+version);
wrapper
.append(newNode);
}
for(i=0;i<10;i++){
var template = $("<div></div>");
appendToWrapper($('#wrapper'), template, i, 'a');
appendToWrapper($('#wrapper'), template, i, 'b');
}
函数appendToRapper(包装器、新节点、循环、版本){
新节点
.文本(循环+版本);
包装纸
.append(newNode);
}
对于(i=0;i,您需要为每个迭代创建一个div。
将代码更改为如下所示:
function appendToWrapper(wrapper, newNode, loop, version){
newNode
.text(loop+version);
wrapper
.append(newNode);
}
for(i=0;i<10;i++){
var template = $("<div></div>");
appendToWrapper($('#wrapper'), template, i, 'a');
appendToWrapper($('#wrapper'), template, i, 'b');
}
函数appendToRapper(包装器、新节点、循环、版本){
新节点
.文本(循环+版本);
包装纸
.append(newNode);
}
for(i=0;i'doh!就是这样!谢谢!这是一个微不足道的问题,DA应该已经解决了。但是,要获得DA所需的完全相同的输出,代码应该是:for(i=0;i<10;i++){var template=$(“”);appendToWrapper($('#wrapper'),template,i,'a');template=$(“”);appendToWrapper($(“#wrapper”),template,i,'b');}即再次为“b”重新初始化模板。doh!就是这样!谢谢!这是一个无关紧要的问题,DA应该已经解决了。但是,要获得DA所需的完全相同的输出,代码应该是:for(i=0;i<10;i++{var template=$(“”);appendToWrapper($(“#wrapper”),template,i,'a');template=$(“”);appendToWrapper($('#wrapper'),template,i,'b');}即重新初始化“b”的模板。