---
title: "Gömma alla DIV:ar utom en"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/62487-gömma-alla-div-ar-utom-en"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Skarre"
published: "2002-12-17T22:20:09.000Z"
updated: "2002-12-18T12:59:22.000Z"
replies: 5
views: 273
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/62487-gömma-alla-div-ar-utom-en"
---

# Gömma alla DIV:ar utom en

## #1 — Skarre, 2002-12-17T22:20Z

Jag håller på men en DHTML-meny och funderar på hur jag ska bära mig åt för att dölja alla alternativlager utom ett.

[Menyn](http://w1.855.telia.com/~u85527216/)

Här är funktionen som visar alternativlagren följt av en länk som använder denna:

```
function showAlt(strDiv, objRef) {
	var altDiv = document.all[strDiv]
	altDiv.style.visibility = "visible";
	altDiv.style.top = getOffsetTop(document.all["menuTop"]) + 26;
	altDiv.style.left = getOffsetLeft(objRef) - 5;
}

<a href="javascript:;" onClick="showAlt('altdiv1',this)">
```

När man klickar på ett en länk i den översta diven så visas en div innehållande tre alternativ, och när man klickar på nästa så ska naturligtvis alla divar utom den rätta gömmas. Hur åstadkommer jag detta?

Permalänk: https://www.webforum.nu/p/62487

## #2 — Daze, 2002-12-17T23:55Z

\<script\>
var remember = new Array();
var remember2 = new Array();
var checkIt;
var DHTML = (document.getElementById \|\| document.all \|\| document.layers);

function show(name,lvl,obj)
{

	if (!DHTML) return;
	//checkUserInput();
	if (remember\[lvl\] && remember\[lvl\] == name) return;
	if (remember\[lvl\])
	{
	closeAll(lvl);
	}
	if (name)
	{
	var x = getObj(name);
	x.visibility = 'visible';
	}
	remember\[lvl\] = name;
	if (obj.parentNode) y = obj.parentNode;
	else if (obj.parentElement) y = obj.parentElement;
	else return;
	if (y.className) return;
	y.className = 'over';
	if (remember2\[lvl\]) remember2\[lvl\].className = '';
	remember2\[lvl\] = y;
}

function closeAll(lvl)
{
	for (i=remember.length - 1;i\>=lvl;i--)
	{
		if (remember*)
		{
			var x = getObj(remember*);
			x.visibility = 'hidden';
		}
		remember *\= null;
		if (remember2*)
		{
			remember2*.className = '';
			remember2 *\= null;
		}
	}
}
function checkUserInput()
{
	if (checkIt) clearTimeout(checkIt);
	checkIt = setTimeout('closeAll(1)',2000);
}

function getObj(name)
{
  if (document.getElementById)
  {
    return document.getElementById(name).style;
  }
  else if (document.all)
  {
    return document.all\[name\].style;
  }
  else if (document.layers)
  {
    return document.layers\[name\];
  }
  else return false;
 
}
\</script\>
\<a href="#" onclick="show('altdiv1',1,'');"\>a1\</a\>
\<a href="#" onclick="show('altdiv2',1,'');"\>a2\</a\>
\<a href="#" onclick="show('altdiv3',1,'');"\>a3\</a\>
\<a href="#" onclick="show('altdiv4',1,'');"\>a4\</a\>

\<div id="altdiv1" style="visibility:hidden"\>altdiv1\</div\>
\<div id="altdiv2" style="visibility:hidden"\>altdiv2\</div\>
\<div id="altdiv3" style="visibility:hidden"\>altdiv3\</div\>
\<div id="altdiv4" style="visibility:hidden"\>altdiv4\</div\>******

Permalänk: https://www.webforum.nu/p/887807

## #3 — Skarre, 2002-12-18T01:23Z

Det är lite "overkill" för detta ändamål, men tack ändå, Daze! :)

Jag löste det med följande:

```
for (i = 1; i <= 3; i++) {
	if (i != intDiv) {
		document.all["altdiv"+i].style.visibility = "hidden";
	}
}
```

Nu gäller det bara att kunna räkna hur många DIV:ar som heter "altDiv" följt av en siffra så att jag kan ersätta 3:an ovan med den siffran. \*suck\*

Permalänk: https://www.webforum.nu/p/887814

## #4 — colione, 2002-12-18T06:50Z

Gör scriptet DOM-kompatibelt.

Permalänk: https://www.webforum.nu/p/887831

## #5 — Skarre, 2002-12-18T10:49Z

Det behöver bara fungera i IE för tillfället, så jag väntar med det. Det är en inlämningsuppgift till plugget.

Permalänk: https://www.webforum.nu/p/887930

## #6 — colione, 2002-12-18T12:59Z

Men om du kör med dom så fungerar det här skulle jag tro...:

```
var myRe=new RegExp(/altdiv[0-9]/)
var foo=document.getElementByTagName("DIV")
myRe.test(foo.name)
```

Permalänk: https://www.webforum.nu/p/888011

---

Tråden på webben: https://www.webforum.nu/amne/javascript/62487-gömma-alla-div-ar-utom-en
