天天看點

關于jQuery中的end() 方法

最近在學習jQuery方面的知識,學習中遇到一定的困難,一些知識不得不檢視官方的文檔,在用到end()方法時,被一個小例子搞得有點暈。

在官方的API上是這樣描述end()方法的:“回到最近的一個"破壞性"操作之前。即,将比對的元素清單變為前一次的狀态。”;

看樣子好像是找到最後一次操作的元素的上一進制素,在如下的例子中:

html代碼:

jQuery代碼:

得到的結果是:

這裡我就有一點不太明白了,怎麼隻有第一個<p>标簽有兩個樣式,end()方法後傳回的是什麼,在火狐裡添加了監控,得到如下結果:

1.$('<p>新增内容</p>').appendTo('div')傳回的是:[p,p]對象數組,即新增後的兩個p标簽;

2.$('<p>新增内容</p>').appendTo('div').addClass('c1')傳回的是:[p.c1,p.c1]對象數組,即添加了c1類樣式後的p對象數組;

3.$('<p>新增内容</p>').appendTo('div').addClass('c1').end()傳回的是[p.c1],是第1個<div>中的<p>,在2操作中,最後“破壞”的是第2個<div>中的 <p>,是以他的前一次操作的對象是第1個<div>中的<p>,傳回的就是它;

4.$('<p>新增内容</p>').appendTo('div').addClass('c1').end().addClass('c2')傳回的仍然是第1個<div>中的<p>;

現在算是有點明白了,關鍵是要搞清楚最後一次操作的元素的上一進制素是什麼。

下一篇: end()