我有一个包含一串文本和html标签的变量,例如:
var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>";
Run Code Online (Sandbox Code Playgroud)
我想删除某种类型的所有标签.让我们说所有p和span标签例如.
这是我能想到的最好的:
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"
Run Code Online (Sandbox Code Playgroud)
我能找到的最接近的答案是Nick Craver的回答:带有jquery的字符串的span span标签.
nbr*_*oks 13
演示:http://jsfiddle.net/VwTHF/1/
$('span, p').contents().unwrap();
Run Code Online (Sandbox Code Playgroud)
.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();
Run Code Online (Sandbox Code Playgroud)
如果要继续定位原始对象,则必须使用.end()清除过滤器.