这可以通过这个简短的 jQuery 命令轻松完成:
$('p meta').remove();
查找<meta>
子标签<p>
很容易在选择器中描述,并且remove()
会立即删除所有匹配的元素。
当您的 HTML 在字符串中时,它会变得有点复杂,但它仍然不是太糟糕:
var content = '...insert above html here...';
// insert into a div to parse as HTML
var $content = $('<div />').html(content);
// find all <meta> tags inside <p> and remove them
$content.find('p meta').remove();
// convert contents back to a string
content = $content.html();
工作小提琴:http: //jsfiddle.net/WVWPS/
尽管上面的代码对我有用,但在某些浏览器中可能会出现问题,因为它<meta>
不是文档正文中的有效 HTML 元素。这个问题<meta>
表明 jQuery在某些情况下可能无法正确创建元素。
如果您遇到特定于浏览器的问题,您可以尝试以下操作:
var content = '...insert above html here...';
// convert <meta> tags to <span> tags with a "meta" class
content = content.replace(/<meta /g, '<span class="meta" ');
// insert into a div to parse as HTML
var $content = $('<div />').html(content);
// find all .meta elements inside <p> and remove them
$content.find('p .meta').remove();
// convert contents back to a string
content = $content.html();
工作小提琴:http: //jsfiddle.net/a4Wa3/
在我们解析 HTML 之前,我们正在做一个字符串替换来将<meta>
标签转换为<span class="meta">
标签。
请注意,最后一个选项是一个非常脆弱的解决方案,如果您更改元标记的生成方式,可能会中断。作为一般规则,应避免使用正则表达式或其他字符串函数操作 HTML,因为它可能会产生严重的副作用。