Как выбрать div, если в нем все чебоксы пустые?
есть такой html
<div class="parametrs" n="Figures" tt="1"> <div class="parametr-размер"><b>размер</b> <label><input type="checkbox"><a>Большой</a></label> <label><input type="checkbox"><a>Маленький</a></label> <label><input type="checkbox"><a>Средний</a></label> </div> <div class="parametr-форма-hide"><b>форма</b> <label><input type="checkbox"><a>квадрат</a></label> <label><input type="checkbox"><a>круг</a></label> <label><input type="checkbox"><a>треугольник</a></label> </div> <div class="parametr-цвет-hide"><b>цвет</b> <label><input type="checkbox"><a>зеленый</a></label> <label><input type="checkbox"><a>красный</a></label> <label><input type="checkbox"><a>синий</a></label> </div> </div> как при помощи CSS стилей или JS выбрать те блоки <div class="parametr- в которых в данный момент не стот ни одной галочки? |
sovsem-nub,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <style type="text/css"> .er { border: 4px red solid; } </style> </head> <body> <div class="parametrs" n="Figures" tt="1"> <div class="parametr-размер"><b>размер</b> <label><input type="checkbox"><a>Большой</a></label> <label><input type="checkbox"><a>Маленький</a></label> <label><input type="checkbox"><a>Средний</a></label> </div> <div class="parametr-форма-hide"><b>форма</b> <label><input type="checkbox"><a>квадрат</a></label> <label><input type="checkbox"><a>круг</a></label> <label><input type="checkbox"><a>треугольник</a></label> </div> <div class="parametr-цвет-hide"><b>цвет</b> <label><input type="checkbox"><a>зеленый</a></label> <label><input type="checkbox"><a>красный</a></label> <label><input type="checkbox"><a>синий</a></label> </div> </div> <script> let box = document.querySelector('.parametrs'); const er = () => { document.querySelectorAll('.parametrs > div').forEach(div => div.classList.toggle('er', !div.querySelector(':checked'))) }; er(); box.addEventListener('change', er) </script> </body> </html> |
function selectNotCheckedDivs (container) { // Выбираем все дочерние div в контейнере const divs = [...container.querySelectorAll(':scope>div')]; // Из них выбираем те, которые вообще имеют <input type="checkbox"> const divsWithCheck = divs.filter(div => div.querySelector('input[type="checkbox"]')); // из ниx выбираем те, которые не имеют отмеченных const divsNotCheck = divsWithCheck.(div => ! div.querySelector('input[type="checkbox"]:checked')); return divsNotCheck; } const notCheckedDivs = selectNotCheckedDivs(document.querySelector('.parametrs')) |
voraa, ":scope" с двоеточием нужно :)
|
ruslan_mart,
Точняк. Поправил. |
Часовой пояс GMT +3, время: 18:26. |