jQuery hasClass / addClass Issue - PullRequest
       3

jQuery hasClass / addClass Issue

0 голосов
/ 25 июля 2011

Это то, что у меня есть. У li есть класс current, но по какой-то причине он не добавляет класс.

if (jQuery("#sidebar li").hasClass("current")) {
        jQuery(this).addClass("booyah");
    }

Ответы [ 6 ]

6 голосов
/ 25 июля 2011

этот указатель не ссылается на элемент $ ("# sidebar li").

if (jQuery("#sidebar li").hasClass("current")) {
        jQuery("#sidebar li").addClass("booyah");
    }
4 голосов
/ 25 июля 2011

Верный и простой способ: jQuery("#sidebar li.current").addClass('booyah') (Если я понял ваш вопрос, и вы хотите добавить 'booyah' к элементу li, уже имеющему 'current')

2 голосов
/ 25 июля 2011

Не используйте this, поскольку вы не находитесь в контексте, где this представляет #sidebar li. Вместо этого объедините ваш селектор jQuery с переменной и повторно используйте ее. Это обеспечивает эффективность, поскольку вам нужно искать нужный элемент только один раз, а не дважды.

var sidebarli = jQuery("#sidebar li");
if (sidebarli.hasClass("current")) {
    sidebarli.addClass("booyah");
}
2 голосов
/ 25 июля 2011

Попробуйте сначала изменить боковую панель. Я не думаю, что «это» - это то, что вы думаете.

var $sideBar = jQuery("#sidebar li");

if ($sideBar.hasClass("current")) {
       $sideBar.addClass("booyah");
    }
0 голосов
/ 25 июля 2011

Вы также можете попробовать это: http://jsfiddle.net/shaneburgess/STZUb/

$.each(jQuery("#sidebar li"),function(){
   if (jQuery(this).hasClass("current")) {
        jQuery(this).removeClass("current").addClass("booyah");
    }
});
0 голосов
/ 25 июля 2011

Вот, пожалуйста:

var $li = jQuery("#sidebar li");

if ($li.hasClass("current")) {
        $li.addClass("booyah");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...