首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除具有类.remove的所有HTML对象,其子对象(如果有)都具有类.remove或类.removable

删除具有类.remove的所有HTML对象,其子对象(如果有)都具有类.remove或类.removable
EN

Stack Overflow用户
提问于 2010-07-01 01:00:59
回答 2查看 866关注 0票数 0

只要所有的后代都有.remove或.removable类,我就需要能够删除所有具有.remove类的DOM对象。忽略空格。如果可以删除文本节点,则它必须只包含空格(制表符、换行符、空格)。

具有.remove和.removable的html对象可以是可以接收包括输入的类的任何类型的html实体。如果后代是除空格以外的任何内容的文本节点,则不能删除上升节点。

具有.remove类的对象可以具有带有.remove或.removable的子体。

子代可以与所讨论的节点相隔任何世代。

如果一个节点被移除,那么所有的子节点也会被移除。

(在示例中,没有保证上面的节点是body。)

示例:

版本1:(应该删除ex1)

代码语言:javascript
复制
<div id="div1" class="remove">  
  <input id="rad1" class="removable" type="radio" />  
  <img id="img1" src="img.gif" class="remove">  
  <div id="div2" class="removable">  
  </div>  
</div>

版本2:(ex1不应该被删除,因为div2包含一个文本节点,而不仅仅是空格,但是img1应该被删除)

代码语言:javascript
复制
<div id="div1" class="remove">  
  <input id="rad1" class="removable" type="radio" />  
  <img id="img1" src="img.gif" class="remove">  
  <div id="div2" class="removable">some text here  
  </div>  
</div>

版本3:(不应删除div1,因为img1不是.remove或.removeable)

代码语言:javascript
复制
<div id="div1" class="remove">  
  <input id="rad1" class="removable" type="radio"  />  
  <img id="img1" src="img.gif">  
  <div id="div2" class="removable">  
  </div>  
</div>
EN

回答 2

Stack Overflow用户

发布于 2010-07-01 01:19:52

这个应该行得通:

代码语言:javascript
复制
$("body > div.remove").not(":has(:not(.remove))").filter(function() {
    return $(this).text().trim().length == 0;
}).remove();

实际上,:has(:not(.remove))选择器的积分属于Nick Craver,但他删除了答案,因为他忘记了filter()。我等了5分钟,但由于没有更新,即使我发布了一个微妙的提示,我只是发布了一个。

Here's a live demo

票数 1
EN

Stack Overflow用户

发布于 2010-07-01 01:08:38

可能是像这样的东西?

代码语言:javascript
复制
$('div.remove').each(function() {
    var remove = true;
    $(this).children().each(function () {
        if (!$(this).is('.remove')) { remove = false; }
        if ($(this).is('div')) {
            if (!$(this).html().test(/^\s+$/) { remove = false; }
        }
    }
    if (remove == true) { $(this).remove(); }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3151566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档