2012-07-14 33 views

回答

5

我建议$content.not('#xx').appendTo('#output');

我还与解决方案也here更新您的JS提琴。

+2

+ 1..Very Simple..welcome to SO – 2012-07-14 15:04:38

+0

谢谢,感谢! – Martin 2012-07-14 16:27:09

2

我想从你正在创建一个片段没有一个顶级的事实,问题源于级元素。如果你把这一切全部包装在<div>那么它工作正常。

var $content = $('<div><h1>title</h1><h2 id="xx">remove me</h2><p>some content or other</p></div>'); 

编辑 —哎呀我也改变了你移除代码完全一样季米特洛夫先生在他的回答一样。

+0

这并不一定有效。你也必须修改'$ .remove()'方法:http://jsfiddle.net/userdude/NNcG5/3/ – 2012-07-14 14:59:20

+0

@JaredFarrish它在我尝试时工作;实际上我已经改变了它 - 我会更新答案。 – Pointy 2012-07-14 15:13:11

+0

没有包装div。很棒的发现。谢谢。 – 2012-07-14 15:30:07

3

尝试这样的:

var $content = $('<div/>').html($('<h1>title</h1><h2 id="xx">remove me</h2><p>some content or other</p>')); 
$content.find('#xx').remove(); 
$('#output').append($content); 

Live demo

+0

@Pointy也打败了你,但我喜欢Martin的简单回答。 http://jsfiddle.net/userdude/NNcG5/7/ – 2012-07-14 15:02:17

+0

是的,但这个答案包括删除节点的正确方法:-) – Pointy 2012-07-14 15:14:36

相关问题