我在某个类之后有一系列元素,这些元素是空的或者里面有空格。
<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;并删除它
请让我知道,谢谢
答案 0 :(得分:5)
:empty
psuedo-class仅选择完全为空的元素。换句话说,如果它有空格,那么从技术上讲它不算空。
您可以使用div
选择以下所有兄弟.nextAll()
元素,然后根据修剪后的HTML是否等于空字符串对其进行过滤:
$('.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();
});
});