2009-07-20 3 views
7

Я пытаюсь понять это в течение 2 дней и не могу понять, почему это не работает.Переменный и jQuery-селектор

Скажем, например, я объявляю переменную «ul» и хочу сказать, что var + li отображается красным.

$("document").ready(function() { 

var menu = $("ul"); 

$(menu +" li").css("color","red"); 

}); 

Все элементы списка теперь должны быть красного цвета. Что я делаю не так?

Пример: http://jsbin.com/izela

ответ

9

Чтобы изменить все прямые детей к красному вы можете использовать

menu.children('li').css("color","red");

Если вам требуется всего Ли в ул (вложенная уль> li> уль> ли), то использовать .find

menu.find('li').css("color","red");

+0

Я хочу, чтобы использовать то, что я выше, я только что сделал пример легко понять. – 2009-07-20 18:44:38

+0

Почему, когда это не правильный способ? – redsquare

+0

Вы пытаетесь добавить строку к объекту jQuery. Это не сработает! – redsquare

3

Вы должны запустить что-то вроде этого:

menu.children('li').css('color', 'red'); 

Проблема заключается в том, что menu является объектом и добавление строки к объекту возврата NaN (в FF), который не может быть использован в качестве селектора.

+0

Как я могу отлаживать FF, чтобы получить NaN? – 2009-07-20 18:48:53

+0

Ну, я просто запускаю '{} + 'a'' в Firebug – RaYell

2

Что вы делаете неправильно, это добавить объект jQuery со строкой. Попробуйте:

var menu = $('ul'); 
menu.find('li').css('color', 'red'); 
Смежные вопросы