有没有办法删除此
<p> </p>
使用jQuery?
答案 0 :(得分:46)
尝试:
$('p')
.filter(function() {
return $.trim($(this).text()) === '' && $(this).children().length == 0
})
.remove()
它的作用是找到所有没有任何内容的<p>
,并将它们从DOM中删除。
答案 1 :(得分:15)
正如Greg上面提到的那样,测试修剪后的.text()会删除没有文字的段落,但会有一个像<img>
标签这样的自包含元素。要避免,请修剪.html()返回。由于文本被视为DOM中的子元素,因此您将被设置。
$("p").filter( function() {
return $.trim($(this).html()) == '';
}).remove()
答案 2 :(得分:2)
答案 3 :(得分:2)
这可能是CMS的更好解决方案。一些富文本编辑器在空段落中添加
。
$("p").filter( function() {
var html = $(this).html();
if(html == '' || html == ' ')
return true;
}).addClass('emptyP');
答案 4 :(得分:1)
$("p").filter( function() {
return $.trim($(this).html()) == '';
}).remove()
我用它来删除包含非元素的空段,如IMG,Input,Select等。
答案 5 :(得分:0)
如果您只想删除所有空的P元素,或只用一个空格删除P,那么您可以这样做:
$('p').map( function(){
var html = $(this).html();
if( !html.length || html == ' ' || html == String.fromCharCode(255) )
return this;
}).remove();
这会遍历您网页上的所有P,如果它们符合某个条件(它们是空的或只有空格),那么它会从DOM中删除它们。
此外,通过将我们的html内容一次分配给局部变量,它可以帮助脚本更快地运行。要查找不间断的空格,我只需将内容与从ASCII字符代码255(这是一个不间断的空格)创建的字符串进行比较。
当一个简单的过滤器或属性比较不够时,jQuery的map()函数会很棒。您可以在此处详细了解.... http://api.jquery.com/map/
答案 6 :(得分:-1)
这应该处理 没有任何类型的子项 的任何元素(包括未展开的文本节点)。
$("p").filter(function() {
return !this.childNodes[0]
}).remove();
答案 7 :(得分:-4)
给它一个id(获取选择器)。
<p id="myP"></p>
<script>
$("#myP").remove();
</script>