Почему этот селектор не работает? - PullRequest
2 голосов
/ 23 января 2012

Я хотел бы выбрать все кнопки пользовательского интерфейса jquery, которые живут внутри всех <div> с класса .view. Имея это в виду, я написал следующие фрагменты кода, ни один из которых не выполняет то, что я хочу.

То, что я хочу, это , как я уже сказал, чтобы вернуть все элементы с классом .ui-button, которые живут внутри элемента с классом .view.

    $(".view").find('.ui-button').each(function(index){
        console.log(index);
    })

    $(".view .ui-button").each(function(index){
        console.log(index);
    })

    $(".view > .ui-button").each(function(index){
        console.log(index); 
    });

Я сделал снимок экрана, чтобы вы, ребята, могли видеть, что внутри этой кнопки действительно есть кнопки JqueryUI <div>. http://imgur.com/yDlw0

Заранее спасибо.

EDIT

Я пытался продвинуть включение скрипта до конца, прежде чем закрывать тег ... все еще ничего ...

Затем я попробовал кое-что, что я обычно делаю при работе с асинхронными запросами (так ли это здесь ??) .. Оборачивание всего в вызове setTimeout с задержкой 500 мс ... Это сработало.

Имеет ли это смысл?

Ответы [ 2 ]

3 голосов
/ 23 января 2012

Я подозреваю, что это вызвано тем фактом, что вы вызываете функцию jQueryUI button(), которая добавляет класс ui-button к элементу после запуска селектора.

См. this пример, который демонстрирует, что это по крайней мере выполнимо.

Поэтому решение состоит в том, чтобы убедиться, что вы вызываете button, прежде чем пытаться манипулировать с использованием класса ui-button, или использовать какой-то другой класс для идентификацииэлементы, которые вы пытаетесь выбрать.Второй момент - важный.у вас уже должен быть другой класс для этих элементов, чтобы вы могли выбрать их для применения функции button().

1 голос
/ 23 января 2012

Когда запускается ваш скрипт?Вполне вероятно, что вы включили его перед библиотекой jQueryUI, которая заставляет вас искать классы до того, как они были добавлены.

Как правило, пользовательские файлы JavaScript и скрипты должны быть расположены в самом низу.прямо перед закрытием </body>

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