1

json 配列を div に追加したい jquery スクリプトに送信するときに問題が発生します。php で、次の html コードを含む json 配列を作成しました。

<li id="1234">
   <span class="some">$1</span>
   <span class="some2">$1</span>
   <div class="somediv"></div>
</li>

したがって、json 配列全体は次のようになります。

[{"id":"12435","text":"<li id=\"1234\"><span class=\"some\">$1</span>"},{"id":"13542","text":"<span class=\"some2\">$1</span><div class=\"somediv\"></div></li>"}];

ここで、getJSON を使用して json オブジェクトを取得し、結果を次のように div に追加します。$(".container").append(val);

問題は、JSON の結果を追加しようとすると、次のように追加されることです。

<li id="1234">
   <span class="some">$1</span>
</li>
<li id="1234">
   <span class="some2">$1</span>
   <div class="somediv"></div>
</li>

valmyを出力しようとすると、json の結果が (終了タグalert(val)なしで) 正しいことを明確に示していますが、追加するとタグが追加されます。<li><li>

これの理由が何であるか誰にも分かりますか?

これは、php ファイルから値を取得する方法です。

$.getJSON("../ajax.php?action=getresults", function(data)
        {
            var obj = $.parseJSON(data);

            $.each(obj, function(key,val)
            {
                $.each(obj[key], function(key, dval)
                {
                    if(key == "text")
                    {
                        alert(dval);
                        $(".container").append(dval);
                    }
                })          

            });         

        });
4

4 に答える 4

2

jQuery は HTML を追加していますが、部分的な HTML ブロックを渡しています。すべての HTML を単一の値に連結してから追加してみてください。

于 2012-12-17T19:08:08.720 に答える
2

jQuery メソッドは、完全な dom ノードを想定しています。jQuery メソッドは、半分しか書かれていないタグから要素を自動的に作成するように設計されているため、これは思ったほど簡単ではないかもしれません。

1 つの代替方法は、JavaScript で文字列を作成し、完了時に追加することです。または、バニラ JavaScript を使用してこれを行うこともできます。ただし、エラーがあるとページが厄介な状態になる可能性があるため、警告します。

于 2012-12-17T19:08:49.100 に答える
1

現在、2 番目の配列で html タグを閉じています。したがって、追加する前に、収集したすべての html を var に格納する必要があります。

var html = '';

$.each(obj[key], function(key, dval)
{
    if(key == "text")
    {
        alert(dval);
        html += dval;
    }
});

$('.container').append(html);  
于 2012-12-17T19:08:35.203 に答える
0

これを試しましたか?

$(".container").html(val);
于 2012-12-17T19:04:22.423 に答える