DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> jQuery移動和復制dom節點實用DOM操作案例
jQuery移動和復制dom節點實用DOM操作案例
編輯:JQuery特效代碼     
本文章簡單的介紹了關於jQuery移動和復制dom節點程序實現,有需要學習的朋友可參考參考。

在做一個項目時,需要dom節點移動,如以下代碼:
. 代碼如下:
<div></div>
<p></p>

需要把p標簽移動到div標簽裡,經過測試發現,在jQuery中移動dom節點非常方便:
. 代碼如下:
$('div').append($('p'))

這樣即可把p標簽移動到div標簽裡,千萬不要寫成這樣:
. 代碼如下:
$('div').append( $('p').html() )

這樣只是把p標簽裡的內容復制到div標簽裡。

如果只是復制一份到div標簽裡,原來的標簽還保留著,那麼可以這麼寫:
. 代碼如下:
$('div').append( $('p').clone(true))


. 代碼如下:
$(function(){
$(".nm_ul li").click(function(){
$(this).clone(true).appendTo(".nm_ul"); // 復制當前點擊的節點,並將它追加到<ul>元素
})
});

而且當clone參數設置為true時還可以將按鈕上綁定的事件一起復制到新按鈕上

在clone()方法中傳遞了一個參數true,它的含義是復制元素的同時復制元素中所綁定的事件。因此該元素的副本也同樣具有復制功能。如果不希望事件也被復制,則可以這麼寫:
. 代碼如下:
$('div').append( $('p').clone())

移動節點
將頁面上的一個節點移動到另外一個地方可以用jq的內部和外部插入方法(append,appendTo,prepend,prependTo,after,before,insertAfter,insertBefore),直接將選中的節點傳遞進去就可以實現移動
. 代碼如下:
<button>Move Me!</button>
<div id="box"></div>
實例
$("button").click(function(){
$(this).appendTo($("#box"));
//或者用append
$("#box").append(this);
});

復制節點也是常用的DOM操作之一,例如很多購物網站的效果,用戶不僅可以通過單擊商品下方的“選擇”按鈕購買相應的產品,也可以通過鼠標拖動商品並將其放到購物車中。這個商品拖動功能就是用的復制節點,將用戶選擇的商品所處的節點元素復制一次,並將其跟隨鼠標移動,從而達到購物效果。
HTML DOM結構如下:
. 代碼如下:
<p class="nm_p" title="歡迎訪問圖書館" >歡迎訪問圖書館</p>
<ul class="nm_ul">
<li title='PHP魔法'>簡單易懂的PHP魔法</li>
<li title='C魔法'>簡單易懂的C魔法</li>
<li title='JavaScript魔法'>簡單易懂的JavaScript魔法</li>
<li title='JQuery'>簡單易懂的JQuery魔法</li>
</ul>

如果單擊<li>元素後需要再復制一個<li>元素,可以使用clone()方法來完成,先來看看效果:
效果演示
歡迎訪問圖書館
簡單易懂的PHP魔法
簡單易懂的C魔法
簡單易懂的JavaScript魔法
簡單易懂的JQuery魔法
JQuery代碼如下:
. 代碼如下:
$(function(){
$(".nm_ul li").click(function(){
$(this).clone(true).appendTo(".nm_ul"); // 復制當前點擊的節點,並將它追加到<ul>元素
})
});

在頁面中單擊隨便一項後,列表最下方出現該項的新節點。
復制節點後,被復制的新元素並不具有任何行為。如果需要新元素也具有復制功能(本例中是單擊事件),可以使用如下JQuery代碼:
. 代碼如下:
$("ul li").click(function(){
$(this).clone(true).appendTo("ul"); // 注意參數true
//可以復制自己,並且他的副本也有同樣功能。
})

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved