我想使用jQuery克隆div的内容,但是从复制的内容中我想找到一个类活动并在使用appendTo
函数之前删除它。
例如,我有这段代码:
<div class="box">
<p>text</p>
<div class="random active"></div>
</div>
我可以使用以下代码复制上面的代码:
var content = $(this).find('.box').html();
现在如何从var content
中找到有效类,并在appendTo
之前将其删除?
请注意,我不想从复制内容的实际div中删除类,我只想从复制的代码中删除它,以便它不包含在克隆div中。
感谢。
答案 0 :(得分:3)
尝试,
var content = $(this).find('.active').removeClass('active').closest('.box').html();
根据您的新要求,
var content = $(this).find('.box').clone().find('.active').removeClass('active');
答案 1 :(得分:1)
你可以这样做:
$(content).find('.active').remove().appendTo('body');
答案 2 :(得分:1)
尝试
content = $(content).find('.active').removeClass('active')
<小时/> 在OP的评论
之后更新
var content = $(this).find('.box').clone();
content = content.find('.active').removeClass('active').closest('.box');
alert(content.html());
答案 3 :(得分:1)
我解决问题的方法:
var content = $(this).find('.box').children().clone().removeClass("active");
content
是一个jQuery数组,其内容为.box
(内容的克隆),所有元素都没有active
类。
替代方案:
如果您只需要从元素中删除该类,则可以添加一个步骤:
var content = $(this).find('.box').children().clone();
content.find(".random").removeClass("active");
如何使用内容变量:
现在,您可以.appendTo()
content
在您需要的地方:
content.appendTo("body"); //for example
调试代码:
使用:alert(content.html())
试试这个:
var content = $(this).find('.box').clone();
content.children().removeClass("active");
alert(content.html()); //HTML string but it seems the best way to use DOM
但这样更好,使用控制台:
var content = $(this).find('.box').children().clone().removeClass("active");
console.log(content); // array of jQuery objects not simply HTML string
示例:
示例:http://jsfiddle.net/Frogmouth/4dYM4/1/
享受,青蛙。
答案 4 :(得分:1)
你可以这样做。
var content = $(this).find('.box').clone();
$(content).find('.active').removeClass('active');
答案 5 :(得分:0)
删除和附加元素的最佳方法
content = $('#content').clone();
$('#content').remove();
content.appendTo('#perntElement');