Выбор div по имени класса - PullRequest
1 голос
/ 01 марта 2011

Я получил этот div ...

<div tabindex="0" class="button-base inline-block button aw-btn button-base-active">
    <input type="text" tabindex="-1" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow-x: hidden; overflow-y: hidden; position: absolute; ">
 </div>

в середине моей страницы, у него нет идентификатора, и я не могу редактировать HTML страницы, я также не могу использовать jQuery.Также пытаюсь сделать это с IE7 и IE8.

Кошмар здесь:)

Решение будет document.getElementsByClassName, но это не совместимо с ie7 и ie8.

Это divпохоронен примерно в 10 div, все из которых похожи по стилю без идентификаторов и т. д. Классы в этом div уникальны!

Единственное решение, которое я вижу, это получить ВСЕ div и зациклить их, ища hasAttriutes аналогично.

У кого-нибудь есть идея получше?

Ответы [ 4 ]

6 голосов
/ 01 марта 2011

Вот кросс-браузерная реализация getElementsByClassName для несовместимых браузеров ( цитата ):

if (!document.getElementsByClassName)
{

    document.getElementsByClassName = function(classname)
    {
        var elArray = [];

        var tmp = document.getElementsByTagName("*");

        var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
        for ( var i = 0; i < tmp.length; i++ ) {

            if ( regex.test(tmp[i].className) ) {
                elArray.push(tmp[i]);
            }
        }

        return elArray;

    };
}
0 голосов
/ 01 марта 2011

Используйте jQuery / Sizzle. IE6 и выше. :)

Загрузить:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

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

jQuery('.class.otherclass.anotherclass')
0 голосов
/ 01 марта 2011

Я бы предложил использовать XPath для выбора узлов.Может работать ...

0 голосов
/ 01 марта 2011

Нет, вот как это делается.Если они не находятся в чем-то с идентификатором, который вы застряли, повторяя все DIV на странице.К счастью, это всего лишь список (не нужно проходить через дерево), так что это не так уж плохо.

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