IE sagt: 'document.getElementsByTagName(...)[...].id' ist Null oder kein Objekt

soezkan

Erfahrenes Mitglied
Hallo zusammen,

ich bekomme mit dem IE (Version 6 und höher) einen Fehler der da meint:
'document.getElementsByTagName(...)[...].id' ist Null oder kein Objekt

Aber wie kann ich die Werte initialisieren, damit das nicht passiert?

Hier der Code

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script type="text/javascript">
<!--
function showlist(ulID){
	var myObj = document.getElementById(ulID);

	if(myObj.style.visibility == "hidden"){
		myObj.style.visibility = "visible";
	}
	else{
		myObj.style.visibility = "visible";
	}

	for(var i = 1; i < document.getElementsByTagName("li").length; i++) {
		if(document.getElementsByTagName("ul")[i].id != ulID) {
			document.getElementsByTagName("ul")[i].style.visibility = "hidden";
		}
	}
}

//-->
</script>
<style>
ul#menu li {
	list-style: none;
	float: left;
	padding-right: 10px;
}

ul#list1 {
	visibility: hidden;
}
ul#list1 li {
	list-style: none;
	float: left;
	padding-right: 10px;
}

ul#list2 {
	visibility: hidden;
}
ul#list2 li {
	list-style: none;
	float: left;
	padding-right: 10px;
}

ul#list3 {
	visibility: hidden;
}
ul#list3 li {
	list-style: none;
	float: left;
	padding-right: 10px;
}
</style>
</head>
<body>
	<ul id="menu">
	<li>
		<div class="entry1" onmouseover="showlist('list1')">List 1</div>
		<ul id="list1">
			<li>Hallo</li>
			<li>Schallo</li>
			<li>Gallo</li>
		</ul>
		<br />
	</li>
	<li>
		<div class="entry2" onmouseover="showlist('list2')">List 2</div>
		<ul id="list2">
			<li>Mehl</li>
			<li>Zucker</li>
			<li>Salz</li>
		</ul>
		<br />
	</li>
	<li>
		<div class="entry3" onmouseover="showlist('list3')">List 3</div>
		<ul id="list3">
			<li>Auto</li>
			<li>Bus</li>
			<li>Fahrrad</li>
		</ul>
		<br />
	</li>
	</ul>
</body>
</html>

Vielen Dank für einen Ratschlag. Ich bin eben noch Anfänger mit JS.

Liebe Grüße
Soezkan
 
Code:
...
     for(var i = 1; i < document.getElementsByTagName("li").length; i++) {
        if(document.getElementsByTagName("ul")[i].id != ulID) {
            document.getElementsByTagName("ul")[i].style.visibility = "hidden";
        }
Passt ja auch nicht.
In deinem HTML-Dokument gibt es mehr LI-Elemente als UL-Elemente.
 

Neue Beiträge

Zurück