我被难住了。我可以在函数中附加"新"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');
}
}
};
UPDATE:由于某些原因,无法在jsfiddle中重新创建我遇到的问题。我使用的是大卡特尔CMS,我只能猜测它在某种程度上是造成这个问题的部分原因——尽管我不知道如何解决。
我猜您的条件或循环有问题,因为追加是有效的。请参见此示例: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');
}
}
};
试试这个:
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>'));
}
}
};
cz您的数组。length是emty值。。尝试使用一些数字数组将长度更改为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');
}
}