2013-10-24 6 views
1

Я запутался об этих линиях JQuery:Что возвращает метод removeClass jQuery?

if ($(ui).hasClass("color1")) 
    $(ui).removeClass("color1").addClass("color2") 
else 
    $(ui).removeClass("color2").addClass("color1") 

в this code.

Я знаю, что $(ui) создает экземпляр JQuery. Я хотел бы знать, будет ли .hasClass тестировать все дерево DOM экземпляра JQuery для любого элемента, который имеет color1 как часть его атрибутов класса.

Также, the docs for removeClass не указано, что removeClass возвращается. Они делают это аллегорически с этим кодом:

$("p").removeClass("myClass noClass").addClass("yourClass"); 

Но я предпочел бы явное заявление о том, что removeClass() возвращается. Потому что мои следующие вопросы: что возвращается removeClass и как addClass может его использовать?

+3

Он возвращает выбранный элемент (ы), обернутый в объект JQuery, так же, как и все другие методы JQuery инкубационные. –

+2

Суть всей цепочки jQuery! – tymeJV

+1

'Возвращает: jQuery' из документов довольно ясно, на мой взгляд. –

ответ

4

Он возвращает объект jQuery. Смотрите документацию removeClass функции: http://api.jquery.com/removeClass/

И на jQuery объект: http://api.jquery.com/Types/#jQuery

Выдержка из документации jQuery объекта:

объект JQuery содержит коллекцию Document Object Model (DOM) элементов, которые были созданы из строки HTML или выбраны из документа . Поскольку методы jQuery часто используют селекторы CSS для соответствия элементам из документа, набор элементов в объекте jQuery равен , который часто называют набором «согласованных элементов» или «выбранных элементов».

1

Возвращает элементы, выбранные с помощью запроса:

$("[some query here]").removeClass("...").text("the text that must be set"); 

Таким образом, добавление class1 и удаление class2 может быть сделано как ниже:

$("query .class2") 
    .removeClass("class2") 
    .addClass("class1"); 

На documentation page вы можете увидеть: Возврат: jQuery.