2010-08-14 3 views
25

Мне нужно установить имя класса в элементе (li). Этот скрипт находит все (a) элементы в списке и создает событие click.JQuery добавить класс к родительскому элементу

jQuery("#" + ElementID).find(TagName).click(function() { 

    GetPageByUrl(jQuery(this).attr("href")); 
    jQuery(this).parent().addClass('yourClass'); 
    //ChangeSelectedMenuItem(this); 
    return false; 
}); 

Родитель каждый (а) элемент является элементом

(Li) Но ничего не происходит, когда эта строка выполняется JQuery (это) .parent() addClass ('YourClass').

Все остальное работает нормально.

Что я здесь делаю неправильно?


Хорошо, но это все еще не сработает. Он не добавит никакого класса jQuery (this) .addClass ('yourClass'); Следует добавить класс к элементу (a), но это не так?

+0

Размещаемые ответил * должен * работать. Чтобы понять, почему они не работают, нам нужно увидеть html, который вы используете. И остальная часть соответствующего jQuery/JavaScript. Не могли бы вы опубликовать [JS Fiddle demo] (http://jsfiddle.net/), чтобы воспроизвести вашу проблему? –

ответ

38

Укажите дополнительный селектор целевой что вы хотите:

jQuery(this).parent('li').addClass('yourClass'); 

Или:

jQuery(this).parents('li').addClass('yourClass'); 
10
$(this.parentNode).addClass('newClass');
+5

Ссылка не работает. – WEFX

+1

В некотором смысле этот комментарий является правильным и неправильным. Это зависит от вашей системы. Если вам нужно динамически добавлять класс, то использование jQuery в порядке. Если вы используете этот метод для добавления класса вместо изменения базового html, то это не правильный путь. – jezzipin

Смежные вопросы