如何在课后删除空元素?(jQuery)

时间:2015-12-18 01:30:09

标签: javascript jquery html css wordpress

我在某个类之后有一系列元素,这些元素是空的或者里面有空格。

<div class="post-content">
     <div class="slider-1-smart">
     --- contents of the slider ---
     </div>

     <div></div>
     <div>   </div>

     <ul>
         <li>Text 1</li>
         <li>Text 2</li>
         <li>Text 3</li>
     </ul>  
</div>

这是我到目前为止尝试的代码:

$(function() {
    $('.post-content > div:empty').each(function() {

        j(this).remove();

    });
});

该代码的结果是滑块容器也消失了。在课后选择元素的方法是什么?&#34; slider-1-smart&#34;并删除它

请让我知道,谢谢

2 个答案:

答案 0 :(得分:5)

:empty psuedo-class仅选择完全为空的元素。换句话说,如果它有空格,那么从技术上讲它不算空。

您可以使用div选择以下所有兄弟.nextAll()元素,然后根据修剪后的HTML是否等于空字符串对其进行过滤:

Example Here

$('.post-content > .slider-1-smart').nextAll('div').filter(function() {
  return $.trim($(this).html()) === '';
}).remove();

答案 1 :(得分:2)

如果您不想检查滑块元素内容,您只需对代码进行一次修改即可。将.not("slider-1-smart")添加到选择器链。

$(function() {
    $('.post-content > div:empty').not(".slider-1-smart").each(function() {

        $(this).remove();

    });
});