附加到附加元素

时间:2013-02-06 01:16:02

标签: jquery bigcartel

我很难过。我可以在函数中附加“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,我只能猜测它是否在某种程度上对这个问题负有部分责任 - 尽管我的工作方式已超出我的范围。

3 个答案:

答案 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');
        }
    }