JQuery: 如何 select a class 没有带有 id 的父元素的元素?

JQuery: How to select a class without elements of a parent with id?

我有一个 ul 元素:

<ul id="listA">
  <li class="myclass">1</li>
  <li class="myclass">2</li>
  <li class="myclass">3</li>
  <li class="myclass">4</li>
  <li class="myclass">5</li>
  <li>
    <ul id="listB">
      <li class="myclass">B1</li>
      <li class="myclass">B2</li>
      <li class="myclass">B3</li>
      <li class="myclass">B4</li>
    </ul>
  </li>
</ul>

我想通过 class 名称 myclass 获取所有不在 ul 中且 ID listB.

的元素

我对 $('.myclass:not ul #listB') 的尝试无效。

您可以按如下方式使用not

const res = $('*:not(ul#listB) > .myclass');

console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul id="listA">
  <li class="myclass">1</li>
  <li class="myclass">2</li>
  <li class="myclass">3</li>
  <li class="myclass">4</li>
  <li class="myclass">5</li>
  <li>
    <ul id="listB">
      <li class="myclass">B1</li>
      <li class="myclass">B2</li>
      <li class="myclass">B3</li>
      <li class="myclass">B4</li>
    </ul>
  </li>
</ul>

您可以提供超过 1 个 class 个名字。所以把 listA class 给 li ,它在 listA

<ul id="listA">
    <li class="myclass inListA">1</li>
    <li class="myclass inListA">2</li>
    <li class="myclass inListA">3</li>
    <li class="myclass inListA">4</li>
    <li class="myclass inListA">5</li>
    <li>
    <ul id="listB">
    <li class="myclass">B1</li>
    <li class="myclass">B2</li>
    <li class="myclass">B3</li>
    <li class="myclass">B4</li>
    </ul>
    </li>
    </ul>

现在就这样使用它 $('.inListA')。我想这会有所帮助!

使用$('.myclass').not('#listB .myclass')

$('.myclass').not('#listB .myclass').css('color', 'red')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="listA">
  <li class="myclass">1</li>
  <li class="myclass">2</li>
  <li class="myclass">3</li>
  <li class="myclass">4</li>
  <li class="myclass">5</li>
  <li>
    <ul id="listB">
      <li class="myclass">B1</li>
      <li class="myclass">B2</li>
      <li class="myclass">B3</li>
      <li class="myclass">B4</li>
    </ul>
  </li>
</ul>