Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает display: block под IE (https://javascript.ru/forum/misc/20990-ne-rabotaet-display-block-pod-ie.html)

inferno3 27.08.2011 19:35

конструкция вида:
for (i=0; i<29;i++){
document.getElementById(i).style.display='table_row';
}

Не работает, поэтому я начал изобратеть теже яйца только в профиль =((.
Может я переменную " i " вместо id неправильно вставляю(кавычки или еще что)? Подскажите..

devote 27.08.2011 20:13

Цитата:

Сообщение от inferno3
Может я переменную " i " вместо id неправильно вставляю(кавычки или еще что)? Подскажите..

1. ID элемента не может начинаться с числа.
2. значения table_row в CSS я не встречал, но видел table-row

inferno3 27.08.2011 21:54

В общем я упростил чуть и через дебагер прогнал. все равно не догоняю в чем я не догоняю ))

<!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){

inferno3 28.08.2011 13:51

document.getElementById - у меня написан с учетом регистра.

При клике на чекбокс данные отображает но обратно не прячет. Почему?

devote 28.08.2011 14:45

вместо этого:
document.getElementById('sdan'+r).style.display = '';
Сделай так
document.getElementById('sdan'+r).style.display = 'none';

inferno3 28.08.2011 14:48

пробывал. Не помогает:blink:
Может кто ни буть скинет к себе скриптик потестить? Я уже устал его мучать. бред какой то.
Тут вопрос уже не про IE даже. Я его с классов решил на ID поставить, дк он везде работать перестал нормально (( хотя синтаксис вроде верный.

devote 28.08.2011 15:20

<!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>

inferno3 28.08.2011 18:07

а ты только style.display = 'none'; исправил? или еще что ни будь?
просто style.display = 'none'; я и сам ставил и безуспешно.

devote 28.08.2011 18:15

var r;
добавил

inferno3 28.08.2011 18:24

я как раз только что её заметил, глядь на форум и ответ тут )))
Тоесть получается переменная из условия не передаётся в тело функции если ее заранее не объявить?


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