0

クリックしたリンクの見出しと親要素のコピーを含む、モーダルダイアログボックスを表示したいリンクがあります。

$('#link').live('click',function(){
    container = $(this).parents(".container")[0];
    message = $("<h2>You clicked on this.</h2>" + container);
    message.find(".foo, .bar, .lorem").remove();

    console.log(message[0]);
    // code for displaying the box using message[0]
});

また、container要素の特定の子を除外する必要があります。

clone()ただし、これは(しばらく手を加えた後、4回目の試行insertAfter()です)機能しません。を表示するだけ<h2>で、親要素のコピーは表示されません。

明らかに、モーダルの背後のページにまだ表示されている元の親要素は影響を受けません。

ここで何が問題になっていますか?

4

3 に答える 3

4
$(document).on('click', '#link', function(){
    var container = $(this).closest(".container").clone(true);
        container.find(".foo, .bar, .lorem").remove();
    var message = $("<h2>You clicked on this.</h2>").add(container);

    $('#modalID').append(message);

    console.log(message);
});
于 2012-08-04T23:27:42.867 に答える
1

$("<h2>You clicked on this.</h2>" + container);文字列を連結する正しい方法ではないため、行メッセージ=に連絡することをお勧めします

このような

message = "<h2>You clicked on this.</h2>" + container;
于 2012-08-04T23:26:23.263 に答える
1
message = $("<h2>You clicked on this.</h2>" + container);

「ここで何が問題なのか」に対する答えになります。containerはDOM要素であり、plus演算子は機能しません。私はあなたが次のようなことをしたいと思います

var message = $(this).closest(".container").clone(true);
message.prepend("<h2>You clicked on this.</h2>");
message.find(".foo, .bar, .lorem").remove();

// then take the message container and view it as a modal box
于 2012-08-04T23:27:36.323 に答える