javascript - 选择器忽略给定类中的所有元素

标签 javascript html jquery

我试图选择不在以下 div 内的所有元素 <div class="manager"></div><div class="release"></div> .

因此,我在下面创建了选择器,但是在上面的 div 中选择元素不正确。你知道我如何更新我的选择器以忽略 <div class="manager"></div> 中的所有元素吗?和<div class="release"></div>

$('*:not(.release, .manager) *').filter(function () { 
   return $(this).css('position') == 'fixed';
}).addClass('reset-pos');

这是我的 html 的组织方式:

<body>
    <div>
        ...
    </div>

    <!-- This element and all below should be ignored/not selected -->
    <div class="manager">
        ...
    </div>

    <!-- This element and all below should be ignored/not selected -->
    <div class="release">
        ...
    </div>
</body>

最佳答案

而不是像这样进行递归遍历:

$('*:not(.release, .manager) *')

您可以简单地执行以下操作:

$('*:not(.release, .manager, .release *, .manager *)')

工作演示:

(注意:我在此演示中使用父类,以排除 head 和其他标记,因为使用 * 包含所有内容)

$('.parent *:not(.release, .manager, .release *, .manager *)')
  .addClass('reset-pos');
.reset-pos { border: 1px solid orange; padding: 5px; margin: 5px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
  <div>
    <p>Ouside manager & release</p>
  </div>
  <!-- This element and all below should be ignored/not selected -->
  <div class="manager">
    <p>Inside manager</p>
  </div>
  <!-- This element and all below should be ignored/not selected -->
  <div class="release">
    <p>Inside release</p>
  </div>
</div>

<小时/>

非工作演示:

(此演示显示了选择器的问题,没有任何父类)

$('*:not(.release, .manager) *').addClass('reset-pos');
.reset-pos { border: 1px solid orange; padding: 3px 8px; margin: 4px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <p>Ouside manager & release</p>
</div>
<!-- This element and all below should be ignored/not selected -->
<div class="manager">
  <p>Inside manager</p>
</div>
<!-- This element and all below should be ignored/not selected -->
<div class="release">
  <p>Inside release</p>
</div>

关于javascript - 选择器忽略给定类中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208791/

相关文章:

html - 将鼠标悬停在文本上时的背景颜色宽度

javascript - 上传 2 个或更多文件时使用 ajax 的进度条

html - 在自定义下拉列表中隐藏额外的文本

javascript - 使用 javascript 和 regex 消除数组中的换行符

application.js 中 _form 部分字段的 Javascript 无法用于编辑操作

javascript - 使用 JavaScript 过滤 HTML 表格 - textContent 错误

javascript - rails : Need help building a basic AJAX search form and displaying results

javascript - 在axios get请求中传递Integer参数

javascript - 根据用户所在位置向上和向下按钮

html - 使用动画在悬停时显示隐藏文本