如果jquery中前一个元素为空,如何删除当前元素?

时间:2016-06-01 12:01:04

标签: javascript jquery html

我想删除带有“tehnicneinfo”类的元素,但前提是我正在检查的元素(类“h2size”)没有子元素。我有一堆由插件生成的元素,我只想删除那些没有子元素的下一个元素。我写了jquery代码,但它删除了我的所有元素,而不仅仅是那些没有子元素的下一个元素。这是我的jquery代码:

$('.news .h2size > div').each(function() {
        var ul = $(this).find('ul');
        if(!ul.length) $(this).remove();
        var h1 = $('.news').find('.tehnicneinfo');
        var h2size = $('.news').find('.h2size');
        if(h2size.prev().is(':empty'))
        {
            h1.remove();
        }
    });

此代码位于$(document).ready(function()内。你能告诉我我做错了什么吗?代码也适用于其他内容,因此我只能从var h1 = $('.news').find('.tehnicneinfo');此行开始。提前谢谢!

HTML:

<div class="news">
   <h1 class="tehnicneinfo">xxx</h1>
   <div class="h2size">
      <div id="xyxyxy">
        .......
      </div>
   </div>
   <h1 class="tehnicneinfo">yyy</h1>
   <div class="h2size"></div>
   ....
</div>

这就是html,只有20多行是相同的,但具有不同的值(不是yyy和xxx)。我需要删除所有'yyy'(它们并非都具有相同的值)。

1 个答案:

答案 0 :(得分:3)

您可以使用filter过滤要删除的内容然后将其删除

“我只想删除那些没有子元素的下一个元素”

$('.tehnicneinfo').filter(function(){
    return !$(this).next().children().length; 
    // only ones with next sibling with no children
}).remove();

JSFIDDLE