использование document.getElementsByTagName не находит элементы, добавленные динамически (IE6) - PullRequest
2 голосов
/ 30 декабря 2010

Я пытаюсь написать метод, который захватывает все элементы определенного имени класса для браузеров, у которых нет метода '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 ]

4 голосов
/ 30 декабря 2010

class является зарезервированным ключевым словом в IE. Не используйте это буквально. Измените class на что-то вроде theClass.

Кроме того, попробуйте document.getElementsByTagName('*') вместо document.all, если изменение class не делает этого.

EDIT:

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

отлично работает для меня в IE6 ^

Позвольте мне попробовать динамически добавить ...

РЕДАКТИРОВАТЬ # 2: отлично работает ..

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

1 голос
/ 30 декабря 2010

Используйте jQuery:)

http://jquery.com/

$('.ClassName') 

вернет ваши элементы:)

тогда вы можете изменить его значение, очень легко добавлять классы!

Некоторые отличные учебники здесь

http://docs.jquery.com/Tutorials

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...