Как выбрать 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:59. |