jQueryでのend()の使い方について

1638 ワード

公式のAPIではend()メソッドについて、「最近の「破壊的」な操作の前に戻ります.すなわち、一致する要素リストを前回の状態にします.」と説明しています.
最後の操作を見つけた要素の前の要素のように見えますが、次の例では:
htmlコード:
 
  
1

2


jQueryコード:
 
  
$('

').appendTo('div').addClass('c1').end().addClass('c2');

結果は次のとおりです.
 
  
1


2



ここで私は少し分かりませんが、どうして最初のラベルだけが2つのスタイルを持っているのか、end()メソッドの後に戻ったのは何なのか、火狐に監視カメラを追加して、以下の結果を得ました.
1.$('新規コンテンツ').appendTo('div')は、[p,p]オブジェクト配列、すなわち、追加された2つのpラベルを返します.
2.$('新規コンテンツ').appendTo('div').addClass('c 1')は、[p.c 1,p.c 1]オブジェクト配列、すなわちc 1クラススタイルが追加されたpオブジェクト配列を返します.
3.$('新規コンテンツ').appendTo('div').addClass('c1').end()は[p.c 1]を返し、第1であり、2であり、最後に「破壊」されたのは第2であるため、彼の前回の操作の対象は第1であり、戻ったのはそれである.
4.$('新規コンテンツ').appendTo('div').addClass('c1').end().addClass('c 2')が返すのは依然として第1の中のものである.
今は少し分かりましたが、最後に操作した要素の前の要素が何なのかを明らかにすることが肝心です.