2013-10-24 60 views
1

我感到困惑的jQuery這些行:jQuery的removeClass方法返回什麼?

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

我知道$(ui)正在創建一個JQuery實例。我想知道是否 .hasClass正在測試JQuery實例的整個DOM樹中的 任何具有color1作爲其類屬性一部分的元素。

另外,the docs for removeClass沒有說明什麼 removeClass返回。他們這樣做的寓言與此代碼:

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

但我寧願什麼removeClass() 返回一個明確的聲明。因爲我的第二個問題是:removeClass返回的內容以及addClass如何使用它?

+3

它返回包裹在一個jQuery對象選定的元素(一個或多個),就像所有其他的jQuery setter方法。 –

+2

所有jQuery鏈接的本質! – tymeJV

+1

從我看來,文檔中的「Returns:jQuery」非常清晰。 –

回答

4

它返回jQuery對象。見removeClass函數的文檔:http://api.jquery.com/removeClass/

jQuery對象:從jQuery對象的文檔http://api.jquery.com/Types/#jQuery

摘錄:

一個jQuery對象包含文檔對象模型的集合(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