2016-07-15 1 views
0

Я хочу проверить, имеет ли каждый отдельный div внутри моего div (с id # row1) свойство «указатель-события», установленное в «none». И только если ВСЕГО ИХ имеют это свойство.JQuery && selector

Как я сделал это очень плохо, но это работает:

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 
} 
+0

Пожалуйста, покажите свой HTML. Это будет проще. –

ответ

1

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/

+0

спасибо, ты спас мне много писем! –