1

jquery/ajax/javascript のベテランに質問があります。特定のゲームのスキル計算機を作成しています...これまではすべて正常に動作しています。

これはajax出力です:

{"skills":{"skill_id_1":"skill_name_1","skill_id_2":"skill_name_2"}}

これは私のajaxです:

function setOutput(){
    if(httpObject.readyState == 4){
    var results = eval('('+httpObject.responseText+')');
    if (results['skills']){
    $('#skilldiv').empty(); // empty div
    $.each(results['skills'], function(key, value)
    {
        $("<div></div>").appendTo("#skilldiv").attr({class: "skilldesc"});
        $("<div>&nbsp;</div>").appendTo(".skilldesc").attr({class: "skillinfo"});
        $("<div>&nbsp;</div>").appendTo(".skilldesc").attr({class: "skilltxt"});
    });
    }
    }
}

これは私のdivです:

<div id="wrapper">
    <ul>
        <li id="skilldiv"></li>
    </ul>
</div

だから私の問題は...

私はこれを試しました:

$.each(results['skills'], function(key, value)
{
    $("<div></div>").appendTo("#skilldiv").attr({class: "skilldesc"});
    $("<div>&nbsp;</div>").appendTo(".skilldesc").attr({class: "skillinfo"});
    $("<div>&nbsp;</div>").appendTo(".skilldesc").attr({class: "skilltxt"});
});

ただし、すべての結果は最初のスキルの説明に入ります。

これらを取得しようとしています:

<div id="wrapper">
    <ul>
        <li id="skilldiv">
            <div class="skilldesc">
                <div class="skillinfo">Some Info of skill 1 here</div>
                <div class="skilltxt">Name of skill 1 here</div>
            </div>
            <div class="skilldesc">
                <div class="skillinfo">Some Info of skill 2 here</div>
                <div class="skilltxt">Name of skill 2 here</div>
            </div>
        </li>
    </ul>
</div>

しかし、代わりにこれを取得します。

<div id="wrapper">
    <ul>
        <li id="skilldiv">
            <div class="skilldesc">
                <div class="skillinfo">Some Info of skill 1 here</div>
                <div class="skilltxt">Name of skill 1 here</div>
                <div class="skillinfo">Some Info of skill 2 here</div>
                <div class="skilltxt">Name of skill 2 here</div>
            </div>
            <div class="skilldesc"></div>
        </li>
    </ul>
</div>

どんな助けでも大歓迎です。. . どうも

4

1 に答える 1

2

.skilldesc最初のdivも選択するためです。

あなたはこれを試すことができます、

$.each(results['skills'], function(key, value)
{
    $skilldesc = $("<div></div>").attr({class: "skilldesc"});
    $("<div>&nbsp;</div>").appendTo($skilldesc).attr({class: "skillinfo"});
    $("<div>&nbsp;</div>").appendTo($skilldesc).attr({class: "skilltxt"});
    $skilldiv.appendTo("#skilldiv");

});

また、(dom ではなく) メモリ内のオブジェクトを操作する必要があります。

于 2012-04-18T05:03:57.590 に答える