为了账号安全,请及时绑定邮箱和手机立即绑定

如果父项没有特定类别的子项,则删除父项

如果父项没有特定类别的子项,则删除父项

温温酱 2022-12-29 16:41:09
我有这样的代码:<div class='parent one'>  <div class='yes'></div>  <div class='yes'></div>  <div class='yes'></div></div><div class='parent two'>  <div></div>  <div></div>  <div></div></div><div class='parent three'>  <div></div>  <div></div>  <div class='yes'></div></div>我该如何删除.parent.two,因为它没有任何孩子.yes?到目前为止我已经尝试过但没有用:$('.parent div:not(.yes)').remove();
查看完整描述

4 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您可以:not使用:has:


$(() => $('.parent:not(:has(.yes))').remove())

.parent{ background: orange; height: 100px; width: 100px; margin: 10px; }

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='parent one'>

  <div class='yes'>Child of one</div>

  <div class='yes'>Child of one</div>

  <div class='yes'>Child of one</div>

</div>


<div class='parent two'>

  <div>Child of two</div>

  <div>Child of two</div>

  <div>Child of two</div>

</div>


<div class='parent three'>

  <div>Child of three</div>

  <div>Child of three</div>

  <div class='yes'>Child of three</div>

</div>


查看完整回答
反对 回复 2022-12-29
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您可以创建一个选择器作为:not:has然后使用remove方法的组合。所以这将选择所有.parent没有类的子元素的.yes类元素。

$('.parent:not(:has(.yes))')

$('.parent:not(:has(.yes))').remove()

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='parent one'>

  <div class='yes'>one</div>

  <div class='yes'></div>

  <div class='yes'></div>

</div>


<div class='parent two'>

  <div>two</div>

  <div></div>

  <div></div>

</div>


<div class='parent three'>

  <div>three</div>

  <div></div>

  <div class='yes'></div>

</div>


查看完整回答
反对 回复 2022-12-29
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

这就是你可以用 vanilla js 做的


document.querySelectorAll(".parent").forEach(ele => {

  if (ele.querySelector(".yes") == null) {

    ele.remove();

  }

})


//for checking

document.querySelectorAll(".parent").forEach(ele => {

  console.log(ele)

})

<div class='parent one'>

  <div class='yes'></div>

  <div class='yes'></div>

  <div class='yes'></div>

</div>


<div class='parent two'>

  <div></div>

  <div></div>

  <div></div>

</div>


<div class='parent three'>

  <div></div>

  <div></div>

  <div class='yes'></div>

</div>


查看完整回答
反对 回复 2022-12-29
?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以通过多种方式实现这一目标。基本方法是:

直接选择:

$('.parent.two').remove();

根据它的索引选择:

$('.parent:eq(1)').remove();

.yes基于元素作为子元素的存在:

$('.parent div').not('.parent .yes').parent().remove();


查看完整回答
反对 回复 2022-12-29
  • 4 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号