我很难过。我可以在函数中附加“new”div,但是当我尝试用其他元素填充它们时没有任何反应。我认为这是因为#new
实际上并不存在于DOM中,但我无法弄清楚要克服这个问题的语法。
function nearlyWorks(){
// This bit works
$('<div id="new"><div id="newInner"></div></div>').appendTo('#target');
// But this bit doesn't
for (var i = 0; i < array.length; i++){
if (i==0){
$('<span></span>').appendTo('#new');
} else {
$('<span></span>').appendTo('#newInner');
}
}
};
更新:由于某种原因,无法在jsfiddle中重新创建我遇到的问题。我正在使用Big Cartel CMS,我只能猜测它是否在某种程度上对这个问题负有部分责任 - 尽管我的工作方式已超出我的范围。
答案 0 :(得分:1)
我猜你的条件或循环存在问题,因为附加有效。请参阅此示例:http://jsfiddle.net/ZkNLL/
function nearlyWorks(){
// This bit works
$('<div id="new"><div id="newInner"></div></div>').appendTo('#target');
// But this bit doesn't
for (var x = 0; x < 5; x++){
if (x%2 == 0){
$('<span></span>').html("Something").appendTo('#new');
} else {
$('<span></span>').html("something else").appendTo('#newInner');
}
}
};
答案 1 :(得分:0)
试试这个:
function nearlyWorks(){
// This bit works
var newBit = $('<div id="new"><div id="newInner"></div></div>');
newBit.appendTo('#target');
// But this bit doesn't
for (the usual){
if (condition){
newBit.append($('<span></span>'));
} else {
newBit.find("#inner").append($('<span></span>'));
}
}
};
答案 2 :(得分:0)
cz你的 array.length 是空值。尝试用一些 array.length 更改为 2 。试试这个..
$('<div id="new"><div id="newInner">val</div></div>').appendTo('#target');
for (var i = 0; i < 2; i++){
if (i==0){
$('<span>'+i+'</span>').appendTo('#new');
} else {
$('<span>'+i+'</span>').appendTo('#newInner');
}
}