Yugo Kamo
Yugo Kamo

Reputation: 2389

JavaScript DOM on IE

I want to make a JS function that switch visible/hidden.

var foo = function(n){      
    var hidden_elements = document.getElementsByName('hidden');     
    for(var i=0;i<hidden_elements.length;i++){
        hidden_elements[i].style.visibility = 'hidden';
    }       
    hidden_elements[n].style.visibility = 'visible';
};

It works on Firefox and Chrome, but it doesn't on IE. Why? Thanks in advance.

Upvotes: 0

Views: 119

Answers (3)

James Andino
James Andino

Reputation: 25779

I would recommend saving yourself the horror and going with:

The libraries do a lot to smooth over the surprises of different browsers. If you are being super minimalist you can always check the source for how they are handling the differences. Also have a look at quirksmode's compatibility listing.

I know I didn't give a solid answer but you are going to run into these troubles all the time and these are some good tools for hammering them out.

Upvotes: 1

Raynos
Raynos

Reputation: 169383

Your html is invalid. the "name" property needs to be unique. Use "class" instead.

Internet Explorer might give some issues, so DOM polyfills like flowjs could be used.

Upvotes: 0

Kris
Kris

Reputation: 8868

IE up to IE8 does not follow W3C specs. Microsoft has their own standards. Many scripting methods that work on Firefox or Chrome (which are W3C standards) may not work properly in various builds on IE.

Why don't you try something from scratch? Either that, or do some ease of access. You can do this by making a pattern for ids and dynamically building those ids (may be incremental). Then, access those tags from their id.

Access by name is not preferred. Id is most appropriate.

Upvotes: 0

Related Questions