$.extend是把兩個對象合併,前提是兩個對象裡面的key不一樣,比如下面這個$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})合併以後就是{name:"Jerry",age:21,sex:"Boy"}。

你現在的做法是將兩個jquery容器對象進行合併,我測試了一下你的代碼,合併的時候會把第二個對象$(『right』)與第一個合併,合併的原則應該是後面的替換前面的,所以用了你現在的方法以後all其實相當於是$("right")這個對象。因此只能出發right裡面li對應的滑鼠事件。

根據你的描述index值沒有發生變化,應該是已經合併成功了吧!假如你現在合併成功會有一個問題,left和right裡面的li索引(index)都是根據父對象進行排序的,你合併之後肯定還是兩個對象,所以索引還是跟以前一樣。

通過下面這個方法可以把所有left和right的li取出來,但是索引同樣還是跟之前一樣,同理li依然按照父容器進行索引排序。

如果純粹要把right裡面的li放到left裡面,可以用append方法(給對象添加子對象)。你可以通過$("#left").append($("#right").children())把right的子對象放到left裡面,這是頁面呈現的時候right裡面的li會進入left裡面,而right將變成一個空容器。

所有的li都在left裡面index的值才會重新排列。


推薦閱讀:
相關文章