使用document.getElementsByTagName找不到动态添加的元素(IE6)

时间:2010-12-30 18:46:03

标签: javascript internet-explorer-6

我正在尝试编写一个方法来抓取某个类名的所有元素,以用于没有'getElementsByClassName'方法的浏览器。这适用于服务器端生成的元素,但是页面能够动态添加元素由于某种原因'window.document.all'不能获得这些动态元素。有任何想法吗?方法如下。

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

        for (i = 0; i < elements.length; i++) {
            if (elements[i].className == class) {
                neededStuff[neededStuff.length] = elements[i];
            }
        }
        return neededStuff;
    }

2 个答案:

答案 0 :(得分:4)

class是IE中的保留关键字。不要按字面意思使用它。将class更改为theClass

另外,如果更改document.getElementsByTagName('*')不执行此操作,请尝试document.all而不是class

修改

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

在IE6中完美适合我

让我尝试动态添加......

编辑#2:工作正常..

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

答案 1 :(得分:1)

使用jQuery:)

http://jquery.com/

$('.ClassName') 

将返回您的元素:)

然后你可以改变它的值,非常容易地添加类!

这里有一些很棒的教程

http://docs.jquery.com/Tutorials