Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2022, 10:04
Интересующийся
Отправить личное сообщение для rita Посмотреть профиль Найти все сообщения от rita
 
Регистрация: 01.06.2020
Сообщений: 22

Показать блок, если все элементы другого скрыты
Как показать элемент id="show_box", если все элементы id="li_a" display="none". На данный момент если хотя бы один элемент display="block", элемент id="show_box" виден.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}
#show_box{
display:none;
}
</style>
</head>
<body>
<center>
   <div id="my_All">
   <li id="li_a" style="display:block">HELLO 1</li>
   <li id="li_a" style="display:none">HELLO 2</li>
   <li id="li_a" style="display:none">HELLO 3</li>
   </div>
   <div id="show_box" >Нужно показать!!!</div>
</center>
<script>
	var show_box=document.getElementById('show_box');
	show_box.style.color='blue';
	document.querySelectorAll('#my_All #li_a').forEach(function(el){
		if (el.style.display==='none')
		{show_box.style.display='block';
			console.log('HHH');
			}
		else{
			show_box.style.display='none';
			}
	})
</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2022, 10:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от rita
если все элементы id="li_a"
ИД должен быть уникален на странице...
Ответить с цитированием
  #3 (permalink)  
Старый 11.02.2022, 10:59
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Зачем использовать <li> там, где его не должно быть?
У него разрешенные родители только <ul> и <ol>.
В других местах он будет как обычный div. Ну так и используйте div.
Ответить с цитированием
  #4 (permalink)  
Старый 11.02.2022, 11:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от voraa
Ну так и используйте div.
Или
Сообщение от voraa
<ul> и <ol>
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2022, 12:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Трудно сказать, что там нужно.
<ul> вместо родительского <div> или
<div> вместо дочерних <li>
Ответить с цитированием
  #6 (permalink)  
Старый 11.02.2022, 13:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

rita,
<!DOCTYPE html>
<html>

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta charset="utf-8">
    <style>
        * {
            box-sizing: border-box;
        }

        #show_box {
            display: none;
            color: #0000FF;
        }

        #show_box.open {
            display: block;
        }
    </style>
</head>

<body>
    <center>
        <ul id="my_All">
            <li class="li_a" style="display:none">HELLO 1</li>
            <li class="li_a" style="display:none">HELLO 2</li>
            <li class="li_a" style="display:none">HELLO 3</li>
        </ul>
        <div id="show_box">Нужно показать!!!</div>
    </center>
    <script>
        let show_box = document.getElementById('show_box');
        let open = [...document.querySelectorAll('#my_All .li_a')].every(li => getComputedStyle(li).display === 'none');
        show_box.classList.toggle('open', open);
    </script>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2022, 12:16
Интересующийся
Отправить личное сообщение для rita Посмотреть профиль Найти все сообщения от rita
 
Регистрация: 01.06.2020
Сообщений: 22

Работает. Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие если блок отображается zoOmer Общие вопросы Javascript 10 04.06.2014 09:39
Как запустить функцию, только если выполнились все события, на которые она подписана Shitbox2 jQuery 4 05.03.2013 10:40
Undisable кнопки, если все поля заполнены skvsk Общие вопросы Javascript 2 30.08.2012 21:27
Как пометить заголовок классом если все чекбоксы ниже включены? МаринаКрутакова jQuery 8 10.10.2011 07:32
Если один уже открыт и при нажатии на ссылку два первый блок скрывался и открывался ybiza Элементы интерфейса 3 16.12.2010 22:24