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.length2に変更してみてください。そしてこれを試してください..

$('<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 に答える