0

我难住了。我可以在函数中附加“新”div,但是当我尝试用其他元素填充它们时,什么也没有发生。我认为这是因为#newDOM 中实际上并不存在,但我无法弄清楚克服这个问题的语法。

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,我只能猜测它在某种程度上是造成问题的部分原因——尽管我不知道如何做。

4

3 回答 3

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');
        }
    }
};
于 2013-02-06T01:23:16.923 回答
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>'));
        }
    }
};
于 2013-02-06T01:21:46.970 回答
0

cz 你的 array.length是 emty 值.. 尝试你将一些数字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');
        }
    }
于 2013-02-06T01:34:25.433 回答