關於jQuery中的end()使用方法

來源:互聯網
上載者:User

在官方的API上是這樣描述end()方法的:“回到最近的一個"破壞性"操作之前。即,將匹配的元素列表變為前一次的狀態。”;
看樣子好像是找到最後一次操作的元素的上一元素,在如下的例子中:
html代碼:
複製代碼 代碼如下:
<div>測試內容1</div>
<div>測試內容2</div>

jQuery代碼:
複製代碼 代碼如下:
$('<p>新增內容</p>').appendTo('div').addClass('c1').end().addClass('c2');

得到的結果是:
複製代碼 代碼如下:
<div>測試內容1 <p class="c1 c2">新增內容</p></div>
<div>測試內容2 <p class="c1">新增內容</p></div>

這裡我就有一點不太明白了,怎麼只有第一個<p>標籤有兩個樣式,end()方法後返回的是什麼,在Firefox裡添加了監控,得到如下結果:
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>;
現在算是有點明白了,關鍵是要搞清楚最後一次操作的元素的上一元素是什麼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.