Ik heb het volgende stukje javascript:


function showMenu(key,sender)
{
    hideSelects(true);
    for (var i=0; i < 15; i++)
    {
        var sm = document.getElementById('sm_'+i);

        if (sm != null)
        {
            sm.style.display = 'none';
            var t=0;
            var div = document.getElementById('menuContainer');
            tr = div.childNodes[0].childNodes[0].childNodes[0];
            td = tr.childNodes[key];

            img = document.getElementById('mi_'+key);
            if(sender.className.indexOf('Over') > 0 )
            {
                img.src='http://basis/images/sortupover.gif';
            }
            else
            {
                img.src='http://basis/images/sortup.gif';
            }

        }
    }

    stopTimer();
    var submenu = document.getElementById('sm_'+key);
    submenu.style.display = '';
    submenu.style.left = td.offsetLeft;
    if (submenu.clientWidth < td.offsetWidth)
    {
        submenu.style.width = td.offsetWidth + 'px';
        submenu.childNodes[0].style.width = td.offsetWidth + 'px';
    }
    submenu.style.display = 'inline';
}


In oudere browsers werkt dit. In nieuwere browsers geeft hij de volgende error:

TypeError: div.childNodes[0].childNodes[0] is undefined (regel 13)

Wat moet ik veranderen?
Wat verschijnt er in je console als je console.log(div.childNodes[0]); op regel 12 plaatst?
Ik weet verder niet hoe je html eruit ziet. Anders moet je er eens een fiddle van maken.
Hallo Randy,

Bedankt voor je antwoord. Als ik dat op regel 12 plaats krijg ik het volgende: "<TextNode textContent="\n ">"

Ik zal de fiddle in een prive bericht naar je sturen.
Salvatore Luciano op 02/03/2016 13:27:33

Ik zal de fiddle in een prive bericht naar je sturen.

We zijn hier op het forum met meerdere personen die graag willen meehelpen / -denken.
Kan je de fiddle niet in dit topic delen?
Ik snap dat je dat zegt Ariën maar het gaat om een applicatie op het intranet.
Is het niet veel handiger en gebruiksvriendelijker om jQuery te gebruiken? Dit is cross-browser en hoef je dus zelf geen rekening met browsers te maken.
- Ariën - op 02/03/2016 13:31:34

[quote="Salvatore Luciano op 02/03/2016 13:27:33"]
Ik zal de fiddle in een prive bericht naar je sturen.

We zijn hier op het forum met meerdere personen die graag willen meehelpen / -denken.
Kan je de fiddle niet in dit topic delen?
[/quote]

De oplossing zal ik hier dan ook maar delen.
Dat was ipv div.childNode[0].childNode[0] :

var trElements = div.getElementsByTagName('tr');
var tr = trElements[0];

Reageren