Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Показ/скрытие элементов DOM (https://javascript.ru/forum/dom-window/14786-pokaz-skrytie-ehlementov-dom.html)

securelord 01.02.2011 11:34

Т.е. если код изменить так:
<script>
function show(id){
	var div = document.getElementById('sh'),
	     elems = div.getElementsByTagName('*');

	for(var i=0; i<elems.length; i++)
	if(elems[i].id) 
		document.getElementById(elems[i].id).style.display =  elems[i].id != id ? "none" : "block";
	else elems[i].style.display = "none";
	}
</script>

</head>
<body>
<a href="javascript:void(0)" onClick="show('e1')" >1</a>
<a href="javascript:void(0)" onClick="show('e2')">2</a>
<a href="javascript:void(0)" onClick="show('e3')">3</a>

<div id="sh">


<div style="display: none" id="e1">
<table >
<tr>
	<td>1</td>
</tr>
</table>
</div>

<div style="display: none" id="e2">2</div>
<div style="display: none" id="e3">3</div>
</div>

</body>


таблица не покажется. Где копать что то не пойму(

Vulkan 01.02.2011 12:08

Тогда вот так можно:
<script>
function show(id){
	var div = document.getElementById('sh'),
	     elems = div.getElementsByTagName('div');

	for(var i=0; i<elems.length; i++)
	if(elems[i].id) 
		document.getElementById(elems[i].id).style.display =  elems[i].id != id ? "none" : "block";
	else elems[i].style.display = "none";
	}
</script>

</head>
<body>
<a href="javascript:void(0)" onClick="show('e1')" >1</a>
<a href="javascript:void(0)" onClick="show('e2')">2</a>
<a href="javascript:void(0)" onClick="show('e3')">3</a>

<div id="sh">


<div style="display: none" id="e1">
<table >
<tr>
	<td>1</td>
</tr>
</table>
</div>

<div style="display: none" id="e2">2</div>
<div style="display: none" id="e3">3</div>
</div>

</body>

ksa 01.02.2011 13:09

Vulkan, думаю что с условием ты перемудрил малость...

<script>
function show(id){
    var div = document.getElementById('sh'),
         elems = div.getElementsByTagName('div');

    for(var i=0; i<elems.length; i++)
       elems[i].style.display=(elems[i].id==id)? "block": "none";
    }
</script>

</head>
<body>
<a href="javascript:void(0)" onClick="show('e1')" >1</a>
<a href="javascript:void(0)" onClick="show('e2')">2</a>
<a href="javascript:void(0)" onClick="show('e3')">3</a>

<div id="sh">


<div style="display: none" id="e1">
<table >
<tr>
    <td>1</td>
</tr>
</table>
</div>

<div style="display: none" id="e2">2</div>
<div style="display: none" id="e3">3</div>
</div>
</body>

Vulkan 01.02.2011 13:25

ksa, точно, забыл убрать условие)

Skipp 01.02.2011 13:31

а так ещё короче)
<script>
function show(id){
	var elems = document.getElementById('sh').getElementsByTagName('div');
	for(var i in elems) elems[i].style.display=(elems[i].id==id)? "block": "none";
}
</script>

</head>
<body>
<a href="javascript:void(0)" onClick="show('e1')" >1</a>
<a href="javascript:void(0)" onClick="show('e2')">2</a>
<a href="javascript:void(0)" onClick="show('e3')">3</a>

<div id="sh">


<div style="display: none" id="e1">
<table >
<tr>
	<td>1</td>
</tr>
</table>
</div>

<div style="display: none" id="e2">2</div>
<div style="display: none" id="e3">3</div>
</div>

</body>

securelord 01.02.2011 14:42

Всем большое спасибо. Все работает как надо.


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