Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрытие пустых тегов jquery (https://javascript.ru/forum/dom-window/52017-skrytie-pustykh-tegov-jquery.html)

Rorbi 30.11.2014 15:59

Скрытие пустых тегов jquery
 
Здравствуйте. Подскажет пожалуйста.
Имеется вот такой код html
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст2</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст3</span>
	</div>
</div>
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
</div>



Можно ли сделать так что бы если <span class="detailed"></span>
был пустой (то есть не содержал в себе текста "Тут текст"), то весь
бок в котором он находится скрывался display none например?
Html стал вот такого вида:
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст2</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст3</span>
	</div>
</div>
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr" style="display:none">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
	<div class="tr" style="display:none">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
</div>

[/html]

danik.js 30.11.2014 16:02

Дык ты это в шаблонизаторе, на сервере сделай. Можешь вообще не выводить html код скрытых блоков, сэкономишь кастрюлю байтов.

рони 30.11.2014 16:03

Rorbi,
циклом пройти по классу tr и скрыть нужное.почему проблемы то?

рони 30.11.2014 16:10

Rorbi,
на сервере лучше ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       $(".detailed:empty").parent().hide();
});
  </script>
</head>

<body>
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст2</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст3</span>
	</div>
</div>
<div class="accountTable">
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed">Тут текст1</span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
	<div class="tr">
		<span class="name">Название:</span>
		<span class="detailed"></span>
	</div>
</div>

</body>

</html>

Rorbi 30.11.2014 16:24

Цитата:

Сообщение от рони (Сообщение 343622)
Rorbi,
на сервере лучше ...
$(function(){
$(".detailed:empty").parent().hide();
});

Спасибо большое, работает как надо

danik.js 30.11.2014 16:25

Rorbi, к серверу доступа что-ли нет?

Rorbi 30.11.2014 18:00

Цитата:

Сообщение от danik.js (Сообщение 343630)
Rorbi, к серверу доступа что-ли нет?

Да, там проблема, нужно было допилить костыль какой нибудь


Часовой пояс GMT +3, время: 21:59.