Jquery && 选择器

Jquery && selector

我想检查我的 div(带有 id#row1)中的每个 div 是否都将 属性 "pointer-events" 设置为 "none"。并且只有当 他们所有人 让 属性 做某事时。

我的做法很糟糕,但它有效:

if( $('#row1 div:nth-child(1)').css("pointer-events") === "none"){

    if( $('#row1 div:nth-child(2)').css("pointer-events") === "none"){Do something}}

有没有简单的方法来检查这个?像这样:

    if(($('#row1 div:nth-child(1) && #row1 div:nth-child(2)')).css("pointer-events") === "none"){
    Do something
}

jQuery 似乎没有 .all.every 方法,但您可以为此使用 Array.prototype.every(或 [].every):

var allHavePointerEventsNone = [].every.call($("#row1 div"), function(el) {
  return $(el).css("pointer-events") === "none";
});

测试:

// HTML
<div id="foo">
  <div class="yes"></div>
  <div class="yes"></div>
  <div class="yes"></div>
</div>

<div id="bar">
  <div class="yes"></div>
  <div class="yes"></div>
  <div class="no"></div>
</div>

// JS
console.log([].every.call($("#foo div"), function(el) {
  return $(el).hasClass("yes");
}));

console.log([].every.call($("#bar div"), function(el) {
  return $(el).hasClass("yes");
}));

输出:

true
false

https://jsfiddle.net/Dogbert/41wqf94p/