Скрыть пустые блоки
Есть несколько блоков класса tablewrap
В этих блоках всегда есть заголовки. Но, в зависимости от фильтрации, не всегда есть что-то помимо заголовков. Задача: скрыть блоки, в которых нет ничего, кроме заголовка. Наваяла такую штуку, ориентируясь на наличие или отстутсвие строк в блоках ( function($) { $(document).ready(function () { $(!'div:contains("items-row")').closest('.tablewrap').remove(); }); } ) ( jQuery ); Только работает это неправильно. Если хоть в одном блоке есть Items-row - показывает все, и пустые, и с элементом. Если нигде нет - все скрывает. Нужно как-то задать обод блоков по порядку и для каждого выполнять эту функцию отдельно, но что-то ничего похожего не гуглится. Спасибо. |
Ленча,
сделайте минимальный html, чтоб было понятно, что хотите удалить, а что оставить. |
Цитата:
|
<div class="tablewrap"> <h2>Заголовок</h2> <div class="items-row"> блаблабла </div> </div> <div class="tablewrap"> <h2>Заголовок</h2> </div> <div class="tablewrap"> <h2>Заголовок</h2> <div class="items-row"> блаблабла </div> </div> Второй tablewrap нужно удалить, потому что он не содержит внутри items-row Количество блоков произвольное, в каком не будет элемента - заранее сказать нельзя. each у меня что-то не взлетело( ( function($) { $(document).ready(function () { $( "tablewrap" ).each(function( ) { if(!$(this).children('.items-row').length > 0) { $(this).css("display":none); } }); }); } ) ( jQuery ); |
Ленча,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".tablewrap").each(function(indx, el){ $(el).has(".items-row").length || $(el).remove() }); }); </script> </head> <body> <div class="tablewrap"> <h2>Заголовок</h2> <div class="items-row"> блаблабла </div> </div> <div class="tablewrap"> <h2>Заголовок</h2> </div> <div class="tablewrap"> <h2>Заголовок</h2> <div class="items-row"> блаблабла </div> </div> </body> </html> |
Ух ты! Красиво)
Спасибо! |
Часовой пояс GMT +3, время: 04:58. |