как сбросить видимость нескольких объектов сразу 
		
		
		
		Приветствую, 
	Есть список объектов со своими id, видимость которых попеременно переключается. Соответственно другие, кроме нужного приходиться сбрасывать. Сейчас делаю это весьма громоздкой кострукцией: 
function mk1() {
	 	document.all.mark1.style.display='';
		document.all.mark2.style.display='none';
		document.all.mark3.style.display='none';
		document.all.mark4.style.display='none';
		...
                          document.all.mark66.style.display='none';
		document.all.mark67.style.display='none';
		}
        ...
        ...
	function mk67() {
	 	document.all.mark1.style.display='none';
		document.all.mark2.style.display='none';
		document.all.mark3.style.display='none';
		document.all.mark4.style.display='none';
		...
		document.all.mark66.style.display='none';
		document.all.mark67.style.display='';
		}
Понятно, что при увеличении числа объектов код растет с геометрической прогрессией. В результате файл со скриптом уже весит 200 Кб. Вопрос: Как заменить несколько инструкций по выключению видимости всех объектов (кроме нужного) на одну?  | 
	
		
 сразу замечу что использование document.all является плохим, вследствии некросбраузерности, и проблем с name 
	теперь же по сути 
function qwe(num=1)
{
var max=67;
if(num>max)
    {
    for(i=1;i<=max;i++)
        document.getElementById('mark'+i).style.display='none';
    return;
    }
for(i=1;i<num;i++)
    document.getElementById('mark'+i).style.display='none';
document.getElementById('mark'+i).style.display='';
for(i++;i<=max;i++)
    document.getElementById('mark'+i).style.display='none';
}
 | 
	
		
 Передавайте в функцию аргументом элемент который нужно показать, а остальные скрывайте в цыкле. 
	И не используйте конструкцию document.all (она будет работать только в IE), лучше используйте document.getElementById('mark1') и т.д. Добавлено: пока писал, ответили.  | 
	
		
 Цитата: 
	
 еще работает в опере(по крайней мере старых версиях), и можно заставить в мозилле пахать. но смысла в этих изварщениях нету. ибо в all еще пихается по name-у  | 
	
		
 Большое спасибо, насчет цикла не подумал )) Но вот проблем с кроссбраузерностью пока не было, совсем. Наверное потому, что использую id, а не name. 
	 | 
	
		
 все же бы следовало бы использовать именно document.getElementById() 
	вы свой код везде проверяли? он не запашет в мозилле(в завизимости от заголовка документа) и скорее всего не запашет в хроме  | 
	
		
 В IE, Opera, Mosilla, Netscape работает ок. До других пока просто руки не дошли )) Но попробую все же перейти на getElementById(), еще раз спасибо. 
	 | 
	
		
 Просто document.all - это IE 4 DOM, ну в некоторые браузеры котоыре хотят поспеть везде (такие как опера), добавили поддержку. Но это не праивльно :) как уже сказали не раз. 
	 | 
	
		
 Ну вот, скрипт весил 200 Кб, теперь 200 байт )) Все браузеры съели на ура... 
	
function mk(num) {
	 	max=67;
		for(i=1;i<=max;i++) {
			if (i==num) {
			document.getElementById('mark' + i).style.display='';
			}
			else {
			document.getElementById('mark' + i).style.display='none';
			}
		}
	}
 | 
	
		
 Так будет работать быстрее: 
	
function mk(num) {
for(var i=1;i<=67;i++) document.getElementById('mark' + i).style.display='none';
document.getElementById('mark' + num).style.display='';
}
 | 
| Часовой пояс GMT +3, время: 13:53. |