0

jquery .html() を使用すると、それを使用して jquery オブジェクトを送信できることはわかっていますが、複数のオブジェクトを送信すると、出力は "[object Object]" になります。いくつかの回避策を実行しましたが、問題を解決できませんでした..

ここにスクリプトがあります

    $('.kim2').on('click', function(){
        var ok = $(this).next();
        var trunk = "hmm";
        console.log(ok);
        $('#content').html(function(){
            return ok + trunk;
        });
    });

html :

            <div class="kim2">피의자 상황</div>
              <div id="b"class="kim2b">
                <div id="b1" class="kim2bb">부양가족 <br />과도한 곤경</div>
                <div id="b2" class="kim2bb">건강상태 매우 <br />나쁨</div>
                <div id="b3" class="kim2bb">고령</div>
                <div id="b4" class="kim2bb">사회적&lt;br /> 유대관계 분명</div>
                <div id="b5" class="kim2bb">사회적 <br />유대관계 결여</div>
                <div id="b6" class="kim2bb">약물중독 <br />알코올 중독</div>
                <div id="b7" class="kim2bb">해당없음</div>
              </div>

return 文からトランクを削除すると完全に機能しますが、他のオブジェクトを追加すると上記のようになります。

いくつかのバリエーションで、必要な数のオブジェクトを送信したいと考えています。どのように?

4

2 に答える 2

5

問題は、2 つのオブジェクトを文字列として連結しようとしていることです。これらは文字列ではないため、最初に文字列に変換しないと機能しません。

これを行う最善の方法は、実際には jQuery 関数をempty()既存のコンテンツに使用append()してから、2 つのオブジェクトのそれぞれをコンテナーに使用することです。

このような:

    $('#content').empty().append(ok, trunk);

あるいは:

    $('#content').empty().append(ok, "hmm");

これを使用する際に発生する可能性のある問題の 1 つは、#bdiv が元の位置から削除され、コピーではなくコンテンツに移動することです。

ここでの問題は、追加しようとしている要素が既に DOM にある場合、その要素がコピーされるのではなく、新しい場所に移動されることです。ドキュメントから:

この方法で選択された要素が DOM の別の場所に挿入された場合、その要素はターゲットに移動されます (クローンは作成されません)。

これを修正するにclone()は、オブジェクトを自分で作成し、元のオブジェクトではなくクローンを追加する必要があります。

$('.kim2').on('click', function(){
    var okCopy = $(this).next().clone();
    console.log(okCopy);
    $('#content').empty().append(okCopy, "hmm");
});
于 2013-07-02T04:03:42.217 に答える
1
$('#content').html(ok.html() + trunk);

ok 外部 HTML が必要な場合は、次を使用します。

$('#content').html(ok[0].outerHTML + trunk);
于 2013-07-02T03:57:17.110 に答える