我一直试图找到这样做:
stackUp = function(a){
var stack = "";
stack += "<div class='stackWrap'>";
stack += "<div class='stackInfo'></div>";
stack += "<div class='stackBox'>";
stack += "</div>";
stack += "</div>";
for(var i=0;i<a.length;i++){ $(stack).find("stackBox").append(a[i].box); }
return $(stack);
}
我想要做的就是将每个框从一个对象插入到“堆栈”中记住的“stackBox”div中,任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
在循环中,在每次迭代中,您都在创建一个新的jQuery对象并正在修改它。但是这些更改不会反映在字符串stack
中。最后,您将从字符串stack
创建一个新的dom结构并返回它,因此循环中的所有更改都不会反映在返回的对象中
stackUp = function (a) {
var stack = "";
stack += "<div class='stackWrap'>";
stack += "<div class='stackInfo'></div>";
stack += "<div class='stackBox'>";
stack += "</div>";
stack += "</div>";
var $stack = $(stack);
for (var i = 0; i < a.length; i++) {
$stack.find(".stackBox").append(a[i].box);
}
return $stack;
}
答案 1 :(得分:1)
stackUp = function(a){
var stackWrap = $("<div class='stackWrap'><div class='stackInfo'></div></div>")
var stackBox = $("<div class='stackBox'></div>");
for(var i=0;i<a.length;i++){
stackBox.append(a[i].box);
}
stackWrap.append( stackBox );
return stackWrap;
}