复制要在模式框中显示的父元素

时间:2012-08-04 23:21:09

标签: javascript jquery

我有一个链接,我想显示一个模态对话框,其中包含标题和所点击链接的父元素的副本。

$('#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]
});

我还必须过滤出容器元素的某些子元素。

但是,这是(我在尝试使用clone()insertAfter()一段时间之后第四次尝试它)不起作用。它只显示<h2>,没有看到父元素的副本。

显然,在模态后面的页面上仍然可见的原始父元素不应受到影响。

这里有什么问题?

3 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:1)

我建议您联系行message $("<h2>You clicked on this.</h2>" + container);,因为这不是连接字符串的正确方法

喜欢这个

message = "<h2>You clicked on this.</h2>" + container;

答案 2 :(得分:1)

message = $("<h2>You clicked on this.</h2>" + container);

将是“这里有什么问题?”的答案。 container是DOM元素,加号运算符不起作用。我想你想做点什么

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