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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как обратиться к нескольким элементам?

Сообщения:  [1-10]   [11-17] 

 
 автор: Киналь   (02.12.2005 в 20:47)   письмо автору
 
   для: 12345   (01.12.2005 в 21:58)
 

Большое спасибо! Все прекрасно работает, и под ИЕ, и под Оперу.

Еще, по мелочи: какие события возникают при отметке/снятии галочки на <input type=checkbox>?

   
 
 автор: 12345   (01.12.2005 в 21:58)   письмо автору
 
   для: Киналь   (01.12.2005 в 20:31)
 

Можно подсчитать, но в данном случае надо выделить теги по признаку. Поэтому пишем условие выделения:
<script>d=document; 
function hide_admin() 
    { 
     for(i=1;i<d.getElementsByTagName('table').length;i++)if(d.getElementById('trash'+i))d.getElementById('trash'+i).style.display='none'; 
    } 
function show_admin() 
    { 
     for(i=1;i<d.getElementsByTagName('table').length;i++)if(d.getElementById('trash'+i))d.getElementById('trash'+i).style.display=''; 
    } 
</script> 
 <br><a href=# onclick=hide_admin()>Hide</a> . . . <a href=# onclick=show_admin()>Show</a>
<table ...>  <tr><td>1</td></tr></table><!--ID вообще нет--> 
<table id=trash1 ...>  <tr><td>2</td></tr></table>
<table id=trash2 ...>  <tr><td>3</td></tr></table>
<table ...> <tr><td>4</td></tr></table> <!--ID вообще нет--> 
<table id=trash3> <tr><td>5</td></tr></table>

   
 
 автор: Киналь   (01.12.2005 в 20:31)   письмо автору
 
   для: 12345   (30.11.2005 в 19:18)
 

Проблемы остались... Подогнал под себя, получил вот что:

<script>
d=document;
function hide_admin()
    {
     for(i=1;i<d.getElementsByTagName('table').length;i++)d.getElementById('trash'+i).style.display='none';
    }
function show_admin()
    {
     for(i=1;i<d.getElementsByTagName('table').length;i++)d.getElementById('trash'+i).style.display='';
    }
</script>


Но проблема в том, что в цикле берется i от единицы до числа тегов table на странице, и столько раз ищется id='trash'+i. Естественно, это приводит к ошибке, так как таблиц с id такого вида меньше. Проще говоря:

<table ...> <!--ID вообще нет-->
<table id=trash1 ...>
<table id=trash2 ...>
<table ...> <!--ID вообще нет-->
<table id=trash3>

Вот он и ищет trash4 и trash5, которых не существует.

В принципе, можно подставлять в условие цикла нужное число средствами РНР, но тогда придется использовать буфер и вообще усложнять код. Посему вопрос: можно ли подсчитать число тегов table, вообще имеющих id?

   
 
 автор: 12345   (30.11.2005 в 19:18)   письмо автору
 
   для: Киналь   (30.11.2005 в 18:14)
 

См. код по ссылке

   
 
 автор: Киналь   (30.11.2005 в 18:14)   письмо автору
 
   для: 12345   (30.11.2005 в 04:19)
 

Спасибо, уже понятнее=) Но все равно не все ясно, к сожалению. Что есть someText?

   
 
 автор: 12345   (30.11.2005 в 04:19)   письмо автору
 
   для: Киналь   (29.11.2005 в 23:16)
 

Это ещё не код, а его скелет, идея. Русские слова там, конечно, заменяете на коды, зависящие от вашего контекста (и d=document; ).

На соседнем сайте я привёл недавно кроссбраузерное решение с сокрытием группы таблиц - http://forum.vingrad.ru/index.php?showtopic=71995 - там скрывается группа, а затем включается одна таблица с целью сделать навигацию по слоям. Вот эта строчка -
>> for(i=0;i<d.getElementsByTagName('pre').length;i++)d.getElementById('someText'+i).className='';
как раз выполняет скрывание. Возможно, пример поможет.

   
 
 автор: Киналь   (29.11.2005 в 23:19)   письмо автору
 
   для: 12345   (28.11.2005 в 02:08)
 

.

   
 
 автор: Киналь   (29.11.2005 в 23:16)   письмо автору
 
   для: 12345   (28.11.2005 в 02:08)
 

Нет, все-таки я танкист... Ничего не получилось из вставки этого кода. Получал одно за другим требования исправить синтаксис, а под конец - ни сообщений, ни результатов=)
Словом, огромная просьба - все-таки написать поподробнее, идеально - вообще функцию.
Но только одно уточнение - если вообще моя идея осуществима только в ИЕ, то скажите, пожалуйста, об этом - лучше не буду делать вообще.

   
 
 автор: 12345   (28.11.2005 в 02:08)   письмо автору
 
   для: Киналь   (27.11.2005 в 22:31)
 

Вот так в IE:
for(i in d.all.tags('table'))if(d.all[i].className=='помеченные')with(d.all[i]){скрыть;}

   
 
 автор: Киналь   (27.11.2005 в 22:31)   письмо автору
 
   для: Crux   (27.11.2005 в 20:07)
 

Эх-х, видно, плохо у меня получается спрашивать...
Да, я могу определить нужные мне сообщения, могу им всем дать одинаковую метку - класс, или id, или еще чего-нибудь. Могу даже разные - присваивать нужным сообщениям порядковые номера в цикле вывода сообщений. Но как средствами JS все эти "меченые" скрыть? Тут предложили присваивать класс, и скрывать все элементы этого класса. Думаю, это выход. Но как это сделать? getElementByClass вряд ли существует=)

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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