Проверка наличия класса
Есть разметка:
<div class="parent"> <div class="one"></div> </div> <div class="parent"> <div class="one"></div> </div> <span class=""></span> при щелчке по элементу one в первом контейнере с классом parent добавляется еще один класс. Получается: <div class="parent"> <div class="one active"></div> </div> <div class="parent"> <div class="one"></div> </div> <span class="disabled"></span> Как задать условие, при котором при клике по one происходит проверка всех элементов на странице с этим классом, и если во всех элементах one есть класс active, то у span удаляется disabled? |
Янковиц,
А что не получается? Какие вопросы? |
Получается что-то вроде :
jQuery(document).ready(function($) { jQuery('.one').click(function() { jQuery(this).addClass('active'); if($('.parent').children().is('.active')){ alert('Выберите опции товара перед его добавлением в вашу корзину.'); } else { jQuery('span').removeClass('disabled'); } }); }); То-есть, классы добавляются, но у span не могу удалить disabled |
В условии ошибка.
|
Небольшое уточнение. Количество элементов с классом one может быть разное. И active должен быть только у одного элемента.
<div class="parent"> <div class="one"></div> <div class="one"></div> </div> <div class="parent"> <div class="one"></div> <div class="one"></div> </div> <span class=""></span> |
Янковиц,
А когда у span появляется disabled ? |
Цитата:
|
Когда в каждом parent есть по одному one с классом active.
|
javascript every
Цитата:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>javascript every</title> </head> <body> <div class="parent"> <div class="one">one</div> </div> <div class="parent"> <div class="one">one</div> </div> <span class="disabled">span</span> <script> (function(span, hook, target) { var sp = document.querySelector('.'+span); document.addEventListener('click', function(e) { if (e.target.classList.contains(target)) { e.target.classList.add(hook); var qf = [].every.call(document.querySelectorAll('.'+target), function(elem, indx) { return elem.classList.contains(hook); }); if (qf) sp.classList.remove(span); } }); })('disabled', 'active', 'one'); </script> </body> </html> |
Элемент с классом activ должен быть в каждом parent
|
Часовой пояс GMT +3, время: 19:03. |