我有一个链接,我想显示一个模态对话框,其中包含标题和所点击链接的父元素的副本。
$('#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>
,没有看到父元素的副本。
显然,在模态后面的页面上仍然可见的原始父元素不应受到影响。
这里有什么问题?
答案 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