Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2018, 20:18
Интересующийся
Отправить личное сообщение для grif0077 Посмотреть профиль Найти все сообщения от grif0077
 
Регистрация: 15.08.2018
Сообщений: 11

Не выводить div если внутри него нет определенного тега, класса или ID
Нужна помощь знатоков.
Существует ли в JS такой функционал, который проверяет вложенность определенного блока?
Например у меня есть блок родительский и внутри него
<div class="main">
                    <div class="col-md-1" style="width:4%">
                        <div class="name-brands">
                              <div class="letter" id="{$key}_{$key}"><a>{$key}</a></div>
                       </div>
                    </div>
             
                    <div class="col-md-11" style="width:96%">
                      {if $breand|count}
                        <div class="up-bl">
                        
                            <ul class="list-brands">
                                 {foreach $breand as $val}
                                 {if $val->new}
                                <li class="breand" style="width: 268px;">
                                <a href="catalog/{$val->category_url}{if $brand}/{$brand->url}{/if}">{$val->category_name}{if $val->percent2 != 0}<img style="margin-top: -4px;" src="https://shampoomania.ru/design/Shamp_3/images/percent2.png" />{/if}</a>{if $val->new}<b  class="new" style="margin: 0 0 0 6px;"> new</b>{/if}{if $val->id == 2211}<img style="margin-top: -4px;width:30px;" src="https://shampoomania.ru/design/Shamp_3/images/shar.png" />{/if}</li>
									{/if}
                        		{/foreach}
                            </ul>
                           
                         
                        </div>
                       {/if}
                    </div>

</div>

Так вот - нужно прятать весь блок "main" если внутри нет тега <li> или же класса "breand" или такого же ID.
Такое вообще под силу JS? Или сразу смотреть в сторону других методов?
Заранее благодарю за ответ.
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2018, 20:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от grif0077
Такое вообще под силу JS?
да
Сообщение от grif0077
Или сразу смотреть в сторону других методов?
да
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2018, 20:39
Интересующийся
Отправить личное сообщение для grif0077 Посмотреть профиль Найти все сообщения от grif0077
 
Регистрация: 15.08.2018
Сообщений: 11

Сообщение от рони Посмотреть сообщение
да

да
Подскажите куда копать, если под силу.
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2018, 20:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от grif0077
Подскажите куда копать, если под силу.
на сервере не выводить лишнее!!!
или так
var coll = document.querySelectorAll(".main");
  for (var i = 0, len = coll.length; i < len; i++) {
     coll[i].querySelector('.breand') || coll[i].remove();
  }
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2018, 20:57
Интересующийся
Отправить личное сообщение для grif0077 Посмотреть профиль Найти все сообщения от grif0077
 
Регистрация: 15.08.2018
Сообщений: 11

Сообщение от рони Посмотреть сообщение
на сервере не выводить лишнее!!!
или так
var coll = document.querySelectorAll(".main");
  for (var i = 0, len = coll.length; i < len; i++) {
     coll[i].querySelector('.breand') || coll[i].remove();
  }
К сожалению не выводить лишнее не вариант пока-что, поэтому нужен временный костыль.
Ваш вариант почемe-то не работает. Я верно размещаю?
<div class="main">
                    {foreach $breands as $key->$breand}  
                    <div class="col-md-1" style="width:4%">
                        <div class="name-brands">
							<div class="letter" id="{$key}_{$key}"><a>{$key}</a></div>
                       </div>
                    </div>
             
                    <div class="col-md-11" style="width:96%">
                      {if $breand|count}
                        <div class="up-bl">
                            <ul class="list-brands">
                                 {foreach $breand as $val}
                                 {if $val->new}
                                <li class="breand" style="width: 268px;">
									<a href="catalog/{$val->category_url}{if $brand}/{$brand->url}{/if}">{$val->category_name}{if $val->percent2 != 0}<img style="margin-top: -4px;" src="https://shampoomania.ru/design/Shamp_3/images/percent2.png" />{/if}</a>{if $val->new}<b  class="new" style="margin: 0 0 0 6px;"> new</b>{/if}{if $val->id == 2211}<img style="margin-top: -4px;width:30px;" src="https://shampoomania.ru/design/Shamp_3/images/shar.png" />{/if}
								</li>
								{/if}
                        		{/foreach}
                            </ul>
                        </div>
                       {/if}
                    </div>
					{/foreach}
				</div>
				<script>
				var coll = document.querySelectorAll(".main");
				for (var i = 0, len = coll.length; i < len; i++) {
				coll[i].querySelector('.breand') || coll[i].remove();
				}
				</script>
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2018, 21:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

grif0077,
а где цикл для <div class="main">?
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2018, 21:10
Интересующийся
Отправить личное сообщение для grif0077 Посмотреть профиль Найти все сообщения от grif0077
 
Регистрация: 15.08.2018
Сообщений: 11

Сообщение от рони Посмотреть сообщение
grif0077,
а где цикл для <div class="main">?
Что имеется в виду под циклом?
Вот полный файл
<div class="leter-list"> 
				{assign var=s value=0}  
				<div class="main">
                    {foreach $breands as $key->$breand}  
                    <div class="col-md-1" style="width:4%">
                        <div class="name-brands">
							<div class="letter" id="{$key}_{$key}"><a>{$key}</a></div>
                       </div>
                    </div>
             
                    <div class="col-md-11" style="width:96%">
                      {if $breand|count}
                        <div class="up-bl">
                            <ul class="list-brands">
                                 {foreach $breand as $val}
                                 {if $val->new}
                                <li class="breand" style="width: 268px;">
									<a href="catalog/{$val->category_url}{if $brand}/{$brand->url}{/if}">{$val->category_name}{if $val->percent2 != 0}<img style="margin-top: -4px;" src="https://shampoomania.ru/design/Shamp_3/images/percent2.png" />{/if}</a>{if $val->new}<b  class="new" style="margin: 0 0 0 6px;"> new</b>{/if}{if $val->id == 2211}<img style="margin-top: -4px;width:30px;" src="https://shampoomania.ru/design/Shamp_3/images/shar.png" />{/if}
								</li>
								{/if}
                        		{/foreach}
                            </ul>
                        </div>
                       {/if}
                    </div>
					{/foreach}
				</div>
				</div>
				<script>
				var coll = document.querySelectorAll(".main");
				for (var i = 0, len = coll.length; i < len; i++) {
				coll[i].querySelector('.breand') || coll[i].remove();
				}
				</script>

Последний раз редактировалось grif0077, 15.08.2018 в 21:12.
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2018, 21:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

grif0077,
мне сложно что-то добавить. браузер какой?
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2018, 21:23
Интересующийся
Отправить личное сообщение для grif0077 Посмотреть профиль Найти все сообщения от grif0077
 
Регистрация: 15.08.2018
Сообщений: 11

Сообщение от рони Посмотреть сообщение
grif0077,
мне сложно что-то добавить. браузер какой?
Опера, хром и моззила показывают одно и то же.
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2018, 21:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

grif0077,
а так
window.setTimeout(function() {
  var coll = document.querySelectorAll(".main");
  for (var i = 0, len = coll.length; i < len; i++) {
    coll[i].querySelector(".breand") || coll[i].remove();
  }
}, 2000);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрыть DIV при клике в нем на ссылку или баннер xavibeat Общие вопросы Javascript 1 30.03.2016 20:41
Как обратится к chekbox если у него нет свойств? sovsem-nub Events/DOM/Window 2 27.02.2015 08:36
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Событие onclick на div, кроме элементов внутри него klev2004 Общие вопросы Javascript 3 04.10.2012 20:33
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09