如何解决如何使用jQuery删除空的p标签?
| 我在上面建立网站的平台会在所见即所得模式下产生空的p
标签。我该如何取出呢?
这样的事情,也许...
$(\"<p> </p>\").remove();
尽管上面的代码没有执行任何操作。
解决方法
答案取决于“空”的含义。如果空的段落为
<p></p>
,则使用fireeyedboy的p:empty
选择器。如果可能有空格或换行符或其他类似的东西,那么您可能想要这样的东西:
$(\'p\').each(function() {
var $this = $(this);
if($this.html().replace(/\\s| /g,\'\').length == 0)
$this.remove();
});
示例:http://jsfiddle.net/ambiguous/7L4WZ/
FCKEditor(不确定CKEditor或TinyMCE)喜欢在HTML中添加ѭ5,因此您可能需要上述难看的方法。
,尝试:
$( \'p:empty\' ).remove();
,你可以试试这个...
$([selector]).is(\":empty\")
如果选择器为空,它将返回true。
,我参加聚会有点晚了,但是我最近也想解决这个问题,所以发现了这个话题。
我在这里提出了Vanilla JS解决方案,该解决方案对我有用:
var p = document.querySelectorAll(\'p:empty\');
for(var i = p.length - 1; i > -1; i-- ) {
p[i].parentNode.removeChild(p[i]);
}
它基本上(完全)执行fireeyedboy的建议,但是没有jQuery。
它似乎也比jQuery表现更好:
http://jsperf.com/remove-empty-elements-javascript-vs-jquery
希望这可以帮助!
,谢谢“亩太短了”,
我已经尝试过您的代码了,但是可以用I9包裹起来
对我有用的完整代码是:
jQuery(document).ready(function() {
jQuery(\'p\').each(function() {
var $this = jQuery(this);
if($this.html().replace(/\\s| /g,\'\').length == 0) {
$this.remove();
}
});
});
我不知道为什么会这样,我的jQuery / JS不太好,我正在学习它;)。
希望这对像我这样的人有所帮助。
谢谢。
,/* Remove empty paragraphs with */
jQuery(\'p\').each(function(){
if( jQuery(this).html() == \' \' )
jQuery(this).remove();
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。