@H_502_1@我有一个包含一串文本和html标签的变量,例如:
var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>";
这是我能想到的最好的:
var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>"; var $temp = $(temp); $("p",$temp).replaceWith("foo"); alert($temp.html()); //returns "Some text"
我能找到的最接近的回答是Nick Craver的回答:strip span tags from string with jquery.
解决方法
演示:
http://jsfiddle.net/VwTHF/1/
$('span,p').contents().unwrap();
.contents()
将获取每个此类标记内的元素和文本,.unwrap
将删除包装每个内容部分的元素.
根据您当前的方法,它看起来像这样:
var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>"; var $temp = $(temp); $temp.find('span,p').contents().unwrap().end().end();
如果要继续定位原始对象,则必须使用.end()清除过滤器.