I have a drop down menu that is supposed to work with four different menu choices, each given the same class. But my code is not working. I want it to work with both chrome and IE. The situation where it crashes is in my init method. The console complains as following: Object # has no method ‘getElementsByTagName’. Any solution ?
function hideorShowField(list) {
var nodes = list.getElementsByTagName("li");
for (i = 1; i < nodes.length; i++) {
if (nodes[i].style.display == 'none') {
nodes[i].style.display = 'block';
}
else {
nodes[i].style.display = 'none';
}
}
}
function init() {
var list = document.getElementsByClassName("undermeny");
list1.getElementsByTagName("li")[0].onclick = function () {
hideorShowField(list);
};
}
window.onload = init;
My html code:
<ul class="undermeny" >
<li>Opinion</li>
<li><a href="#">Ledare</a></li>
<li><a href="#">Aktuella frågor</a></li>
<li><a href="#">Per T Ohlsson</a></li>
<li><a href="#">Magda Forsberg</a></li>
</ul>
<ul class="undermeny" >
<li>Lokalt/Globalt</li>
<li><a href="#">Malmö</a></li>
<li><a href="#">Lund</a></li>
<li><a href="#">Limhamn</a></li>
<li><a href="#">Burlöv</a></li>
<li><a href="#">Eslöv</a></li>
<li><a href="#">Höör</a></li>
<li><a href="#">Kävlinge</a></li>
<li><a href="#">Lomma</a></li>
<li><a href="#">Svedala</a></li>
<li><a href="#">Staffanstorp</a></li>
<li><a href="#">Trelleborg</a></li>
<li><a href="#">Vellinge</a></li>
<li><a href="#">Sverige</a></li>
<li><a href="#">Öresund</a></li>
<li><a href="#">Världen</a></li>
<li><a href="#">Väder</a></li>
</ul>
<ul class="undermeny" >
<li>Ekonomi</li>
<li><a href="#">Nyheter</a></li>
<li><a href="#">Privata pengar</a></li>
<li><a href="#">Börs</a></li>
<li><a href="#">Fonder</a></li>
</ul>
<ul class="undermeny">
<li>Sport</li>
<li><a href="#">Fotboll</a></li>
<li><a href="#">Ishockey</a></li>
<li><a href="#">Handboll</a></li>
<li><a href="#">Fridrott</a></li>
</ul>
getElementsByClassName()returns anodeListas well asgetElementsByTagName(). So you probably need this:Or you’ve to iterate over the
listto attach eventhandlers to all 1stlielements withinuls with classundermeny. That’ll be something like this: