jQuery:如何排除具有名称链接的 div?

问题描述 投票:0回答:1
javascript html jquery
1个回答
0
投票

问题在于

.closest()
是分层传播的。

您可以使用 jQuery 的

:not
:has
选择器排除
.post
元素,然后在其中搜索要删除的
<p>
标签。

您还可以使用

p:nth-child(n+2)
选择器来定位每个块中第一个之后的每个
<p>
标签。

$('.post:not(:has(a[name=123])) .post-body p:nth-child(n+2)').remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="post">
  <a name="123"></a>
  <h3 class="post-title">Post</h3>
  <div class="NewPermalinkUrl">Text</div>
  <div class="post-body">
    <p>Content</p>
    <p>Not removed</p>
  </div>
</div>

<div class="post">
  <a name="456"></a>
  <h3 class="post-title">Post</h3>
  <div class="NewPermalinkUrl">Text</div>
  <div class="post-body">
    <p>Content</p>
    <p>To be removed</p>
  </div>
</div>

<div class="post">
  <a name="789"></a>
  <h3 class="post-title">Post</h3>
  <div class="NewPermalinkUrl">Text</div>
  <div class="post-body">
    <p>Content</p>
    <p>To be removed</p>
  </div>
</div>

© www.soinside.com 2019 - 2024. All rights reserved.