Не работает display: block под IE
Собственно вот код:
Код:
<style> но чтобы block ... :-E По умолчанию класс "sdan" - display: none; Если изменить "sdan" на display: block то скрипт со второго клика по чекбоксу начинает работать, правда криво как-то. С помощью этого скрипта нужно показать скрытые строки в таблице. Собственно сабж. |
Так они не отрисовываются, или действительно не изменяют состояние ?
дебаг проводил ? |
С каких пор IE поддерживает getElementsByClassNamе?
|
Цитата:
|
Цитата:
Дебаг по данному скрипту ничего не дал Второй чекбокс отрабатывает и подкрашивет как надо.(просто для примера привел) |
всё работает, только надо бы знать перед написанием скрипта, что select.style.display === "inline", а не "block"
и еще : он ругается, когда имя переменной совпадает с id элемента. <select id="a" style="display:none"><option>a</option></select> <script> b = document.getElementById('a'); b.style.display = "inline"; </script> т.е. если бы я выбрал 'a', а не 'b', то он бы начал плеваться. |
Может кто ни будь предложет более изящный метод скрытия нескольких строк таблицы по клику на чекбокс?
Я заменил класс на id в виде 1,2,3,4....29, id в ИЕ должен отрабатываться нормально. теперь все эти строки нужно скрыть по чекбокчу, подскажите как лучше их перебрать? что не так я написал? function r() { if(document.getElementById('cb').checked){ for (i=0; i<29;i++){ var y=0; getElementsByid(y).style.display = 'table-row'; y++; } }else{ for (i=0; i<29;i++){ var y=0; getElementsByid(y).style.display = ''; y++; } } |
Опечатка в пятой строчке)
А так вроде всё хорошо... |
for (i=0; i<29;i++){ *!* var *!* y=0; */!* *!*document.getElementById*/!*( *!* y */!* ).style.display = 'table-row'; */!* y++; }Посмотрите сами на свою ошибку |
Хи) Чёрт, я тоже проглядел) Естественно :)
А зачем товарищу y, пусть i юзает напрямую) |
конструкция вида:
for (i=0; i<29;i++){ document.getElementById(i).style.display='table_row'; } Не работает, поэтому я начал изобратеть теже яйца только в профиль =((. Может я переменную " i " вместо id неправильно вставляю(кавычки или еще что)? Подскажите.. |
Цитата:
2. значения table_row в CSS я не встречал, но видел table-row |
В общем я упростил чуть и через дебагер прогнал. все равно не догоняю в чем я не догоняю ))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>тест</title> <style> .sdan{ background-color:#CCDF91; display:none; } </style> <script language="javascript"> function r(){ if(document.getelementbyid('cb').checked){ for (r=0; r<3;r++){ document.getelementbyid('sdan'+r).style.display = 'table-row'; } }else{ for (r=0; r<3;r++){ document.getelementbyid('sdan'+r).style.display = ''; } } } </script> </head> <body> <input type="checkbox" name="cb" id="cb" onclick="r()" > Показать все заказы <br> <table> <tr id="sdan0" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr> <td>не сдан</td> <td>не сдан</td> </tr> <tr id="sdan1" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr id="sdan2" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr id="sdan3" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr> <td>не сдан</td> <td>не сдан</td> </tr> </table> </body> </html> При клике по чекбоксу дебагер выдает ошибку : document.getelementbyid is not a function [Прерывать на этой ошибке]if(document.getelementbyid('cb').checked){ |
document.getElementById - у меня написан с учетом регистра.
При клике на чекбокс данные отображает но обратно не прячет. Почему? |
вместо этого:
document.getElementById('sdan'+r).style.display = '';Сделай так document.getElementById('sdan'+r).style.display = 'none'; |
пробывал. Не помогает:blink:
Может кто ни буть скинет к себе скриптик потестить? Я уже устал его мучать. бред какой то. Тут вопрос уже не про IE даже. Я его с классов решил на ID поставить, дк он везде работать перестал нормально (( хотя синтаксис вроде верный. |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>тест</title> <style> .sdan{ background-color:#CCDF91; display:none; } </style> <script language="javascript"> function r(){ var r; if(document.getElementById('cb').checked){ for (r=0; r<3;r++){ document.getElementById('sdan'+r).style.display = 'table-row'; } }else{ for (r=0; r<3;r++){ document.getElementById('sdan'+r).style.display = 'none'; } } } </script> </head> <body> <input type="checkbox" name="cb" id="cb" onclick="r()" > Показать все заказы <br> <table> <tr id="sdan0" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr> <td>не сдан</td> <td>не сдан</td> </tr> <tr id="sdan1" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr id="sdan2" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr id="sdan3" class="sdan"> <td>сдан</td> <td>сдан</td> </tr> <tr> <td>не сдан</td> <td>не сдан</td> </tr> </table> </body> </html> |
а ты только style.display = 'none'; исправил? или еще что ни будь?
просто style.display = 'none'; я и сам ставил и безуспешно. |
var r;добавил |
я как раз только что её заметил, глядь на форум и ответ тут )))
Тоесть получается переменная из условия не передаётся в тело функции если ее заранее не объявить? |
Цитата:
|
Часовой пояс GMT +3, время: 06:25. |