开发者

using document.getElementsByTagName doesn't find elements added dynamically (IE6)

开发者 https://www.devze.com 2023-02-02 08:18 出处:网络
I am trying to write a method that grabs all the elements of a certain classname for browsers that don\'t have the \'getElementsByClassName\' method. This works perfectly for elements that are generat

I am trying to write a method that grabs all the elements of a certain classname for browsers that don't have the 'getElementsByClassName' method. This works perfectly for elements that are generated server-side, however the page has the ability to add elements dynamically for some reason 'window.document.all' does not get these dynamic elements. Any ideas? Method below.

function getClassName(class) {
        var i, neededStuff = [], elements = document.getElementsByTagName('*');

        for (i = 0; i < elements.length; i++) {
            if (elements[i].className == class) {
                n开发者_如何转开发eededStuff[neededStuff.length] = elements[i];
            }
        }
        return neededStuff;
    }


class is a reserved keyword in IE. Don't use it literally. Change class to something like theClass.

Also, try document.getElementsByTagName('*') instead of document.all if changing class doesn't do it.

EDIT:

http://work.arounds.org/sandbox/72

Works perfectly for me in IE6 ^

Let me try dynamically adding...

EDIT #2: works fine..

http://work.arounds.org/sandbox/72


Use jQuery :)

http://jquery.com/

$('.ClassName') 

will return your elements :)

then you can change it's value, add classes very easily!

Some great tutorials here

http://docs.jquery.com/Tutorials

0

精彩评论

暂无评论...
验证码 换一张
取 消