javascript - 选择具有类的精确组合的元素

标签 javascript jquery

我已经在 this post 以某种方式问过这个问题但事实证明我在寻找错误的解决方案!我的错!

如您所见,我正在寻找一种显示具有数组值组合的div 的解决方案。例如,在此演示中,输出将是 3 个 div,分别为 Has QHas MHas Q & M BUT 我只需要显示 Has Q & M,它在 div 中包含数组元素的所有组合

$('.A.W.B').css("background-color", "red");
let mopt = ['Q','M'];

$('.box').not(
  mopt.map(function(className){ return '.'+ className; }).join(', ')
).hide();
.box {
  height: 20px;
  background: khaki;
  width: 100px;
  text-align:center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h4> Should Display Only the Div which Has 'Q' <strong>AND </strong> 'M' together</h4>

<div class="box A B F  R W Q">Has Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R">No Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R M">Has M</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B Q F H  M K F">Has Q & M</div>

<p> but it is displaying all boxes which have part of `mopt` array</p>

最佳答案

当用逗号分隔选择器时,它将充当 multiple selectors意味着他们每个人都充当一个选择器。要组合在一起,请在没有任何空格的情况下将它们连接起来。

$('.A.W.B').css("background-color", "red");
let mopt = ['Q','M'];

$('.box').not(
  mopt.map(function(className){ return '.'+ className; }).join('')
).hide();
.box {
  height: 20px;
  background: khaki;
  width: 100px;
  text-align:center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h4> Should Display Only the Div which Has 'Q' <strong>AND </strong> 'M' together</h4>

<div class="box A B F  R W Q">Has Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R">No Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R M">Has M</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B Q F H  M K F">Has Q & M</div>

<p> but it is displaying all boxes which have part of `mopt` array</p>

引用:

Selecting Elements | JQuery

Simple Selectors | MDN

关于javascript - 选择具有类的精确组合的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658232/

相关文章:

javascript - 如何控制jquery动画速度

javascript - d3.pack() 转换更新

asp.net - jquery 脚本删除

javascript - 无法隐藏我页面的部分内容,但相同的代码适用于 JSFiddle

javascript - 更新 Like 按钮而不刷新页面

jquery - 带约束的视口(viewport)中的 div

javascript - 无法让 jQuery 停止冲突

javascript - -moz-calc crossbrowser(polyfills?钩子(Hook)?)

javascript - 如何避免jQgrid初始AJAX请求?

javascript - 我如何使用 Jquery/JS 获取此元素?