Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отобразить/скрыть данные в таблице по клику
 
 автор: sponge   (03.01.2008 в 03:34)   письмо автору
 
 

Подскажите как реализовать следующее:
при клике по ссылке (показать), в таблице отображаются некоторые прежде невидимые строки, а надпись ссылки меняется (скрыть), при повторном клике - они вновь прячутся.

   
 
 автор: sim5   (03.01.2008 в 04:39)   письмо автору
 
   для: sponge   (03.01.2008 в 03:34)
 


function swhd() {
 if (document.getElementById('s').style.display == "none") {
  document.getElementById('s').style.display = "block";
  document.getElementById('b').innerHTML = "Скрыть";
 } else {
  document.getElementById('s').style.display = "none";
  document.getElementById('b').innerHTML = "Показать";
 }
}
</SCRIPT>
<SPAN ID="b" STYLE="cursor: pointer;" ONCLICK="swhd()">Показать</SPAN>
<TABLE>
<TR ID="s" STYLE="display: none;">
 <TD>text</TD>
 <TD>text</TD>
</TR>
</TABLE>

   
 
 автор: sponge   (03.01.2008 в 14:20)   письмо автору
 
   для: sim5   (03.01.2008 в 04:39)
 

У меня в таблице несколько столбцов, с display:block вся строка вписывается только в первый столбец. и если много раз нажимать спрятать/показать, то каждый раз появляется лишняя белая полоска и таблица растет

корректно работает только в ИЕ7, в фф и опера нет(

   
 
 автор: sim5   (03.01.2008 в 14:23)   письмо автору
 
   для: sponge   (03.01.2008 в 14:20)
 

Пишите display: none и display: ''

   
 
 автор: sponge   (03.01.2008 в 14:28)   письмо автору
 
   для: sim5   (03.01.2008 в 14:23)
 

спасибо! так работает!
а обычно именно так и решают подобные задачи? просто нашел на некотором сайте аналогичную вещь, но слишком уж мудрено было сделано, ничего не понял.

   
 
 автор: sim5   (03.01.2008 в 14:36)   письмо автору
 
   для: sponge   (03.01.2008 в 14:28)
 

Ну значит используйте то, что проще и понятно вам. :) То, что вы видели, скорее всего выполняет больше задач, чем просто скрыть/показать.

   
 
 автор: sponge   (03.01.2008 в 14:55)   письмо автору
 
   для: sim5   (03.01.2008 в 14:36)
 

Что-то я сразу просмотрел. А как сделать так, чтобы сразу несколько строк отображать/скрывать?)

   
 
 автор: sim5   (03.01.2008 в 15:04)   письмо автору
 
   для: sponge   (03.01.2008 в 14:55)
 

Ну если это последовтельно несколько строк, и именно в таблице, то проще вложить их в TR, чтобы обращаться к одному объекту, но можно указывать и несколько объектов TR (по их ID).

   
 
 автор: sponge   (03.01.2008 в 15:17)   письмо автору
 
   для: sim5   (03.01.2008 в 15:04)
 

Что-то не я не совсем понимаю как вложить несколько TR в один. Указывать id каждого не совсем хорошо, очень много их.

   
 
 автор: sim5   (03.01.2008 в 15:54)   письмо автору
 
   для: sponge   (03.01.2008 в 15:17)
 

Не TR в TR, а в ячейку скрываемого TR вложить то что нужно скрыть. Очень много это сколько?

   
 
 автор: sponge   (03.01.2008 в 16:11)   письмо автору
 
   для: sim5   (03.01.2008 в 15:54)
 

порядка 20.. ну это явно не лучший вариант все писать!!!
вот посоветовали childnodes перебрать все элементы, только как это сделать пкоа не знаю)


> Не TR в TR, а в ячейку скрываемого TR вложить то что нужно скрыть.
так у меня скрываются именно сами строки..

т.е.
<table>
<tr><td>a</td><td>b</td></tr>
<!-- строки, скрывающиеся по клику -->
<tr><td>c</td><td>d</td></tr>
<tr><td>e</td><td>f</td></tr>
<tr><td>g</td><td>h</td></tr>

   
 
 автор: sim5   (03.01.2008 в 16:39)   письмо автору
 
   для: sponge   (03.01.2008 в 16:11)
 

Можно и в цикле перебрать эелементы таблицы, и соответсвующие id спрятать. Можно и так поступить:
<TR это скрываемый id><TD><TABLE><TR><TD>это таблица со скрываемыми ячейками</TD></TR></TABLE></TD></TR>
Вам виднее, ведь вы лучше представляете то, что хотите сделать.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования