我有一个字符串:
var s = '<h1>heading</h1><p>para</p>';
我想从中删除h1元素.
我试过了:
$(s).remove('h1');
但是仍然包含h1元素
我也试过:
s = $(s).remove('h1');
和
$('h1',s).remove();
和
$('h1',$(s)).remove();
等等
有任何想法吗?
解决方法
更新:我看到你只是改变了问题.现在的解决方案是这样的:
var s = '<h1>heading</h1><p>para</p>'; var $s = $(s).not('h1'); $('body').append($s);
试试看:http://jsfiddle.net/q9crX/19/
因为您现在在jQuery对象中有多个“顶级”元素,您可以使用.not()(这与.filter()基本相反)来删除h1.
这样做就是做$(s).filter(‘:not(h1)’);
> http://api.jquery.com/not/
> http://api.jquery.com/filter/
原来的答案
$(s).find('h1').remove();
所以如果你把结果追加到身体,你可以做:
var s = '<div><h1>heading</h1><p>para</p></div>'; var $s = $(s).find('h1').remove().end(); $('body').append($s);