2025-05-24

最近在學習jQuery方面的知識,學習中遇到一定的困難,一些知識不得不查看官方的文檔,在用到end()方法時,被一個小例子搞得有點暈。
在官方的API上是這樣描述end()方法的:“回到最近的一個”破壞性”操作之前。即,將匹配的元素列表變為前一次的狀態。”;
看樣子好像是找到最後一次操作的元素的上一元素,在如下的例子中:
html代碼:
<p>測試內容1</p><p>測試內容2</p>
jQuery代碼:
$(<p>新增內容</p>).appendTo(p).addClass(c1).end().addClass(c2);
得到的結果是:
<p>測試內容1 <p class=”c1 c2″>新增內容</p></p>
<p>測試內容2 <p class=”c1″>新增內容</p></p>
這裡我就有一點不太明白瞭,怎麼隻有第一個<p>標簽有兩個樣式,end()方法後返回的是什麼,在火狐裡添加瞭監控,得到如下結果:
1.$(<p>新增內容</p>).appendTo(p)返回的是:[p,p]對象數組,即新增後的兩個p標簽;
2.$(<p>新增內容</p>).appendTo(p).addClass(c1)返回的是:[p.c1,p.c1]對象數組,即添加瞭c1類樣式後的p對象數組;
3.$(<p>新增內容</p>).appendTo(p).addClass(c1).end()返回的是[p.c1],是第1個<p>中的<p>,在2操作中,最後“破壞”的是第2個<p>中的 <p>,所以他的前一次操作的對象是第1個<p>中的<p>,返回的就是它;
4.$(<p>新增內容</p>).appendTo(p).addClass(c1).end().addClass(c2)返回的仍然是第1個<p>中的<p>;
現在算是有點明白瞭,關鍵是要搞清楚最後一次操作的元素的上一元素是什麼。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *