jQuery移動(dòng)和復(fù)制dom節(jié)點(diǎn)實(shí)用DOM操作案例
在做一個(gè)項(xiàng)目時(shí),需要dom節(jié)點(diǎn)移動(dòng),如以下代碼:
<div></div>
<p></p>
需要把p標(biāo)簽移動(dòng)到div標(biāo)簽里,經(jīng)過(guò)測(cè)試發(fā)現(xiàn),在jQuery中移動(dòng)dom節(jié)點(diǎn)非常方便:
$('div').append($('p'))
這樣即可把p標(biāo)簽移動(dòng)到div標(biāo)簽里,千萬(wàn)不要寫成這樣:
$('div').append( $('p').html() )
這樣只是把p標(biāo)簽里的內(nèi)容復(fù)制到div標(biāo)簽里。
如果只是復(fù)制一份到div標(biāo)簽里,原來(lái)的標(biāo)簽還保留著,那么可以這么寫:
$('div').append( $('p').clone(true))
例
$(function(){
$(".nm_ul li").click(function(){
$(this).clone(true).appendTo(".nm_ul"); // 復(fù)制當(dāng)前點(diǎn)擊的節(jié)點(diǎn),并將它追加到<ul>元素
})
});
而且當(dāng)clone參數(shù)設(shè)置為true時(shí)還可以將按鈕上綁定的事件一起復(fù)制到新按鈕上
在clone()方法中傳遞了一個(gè)參數(shù)true,它的含義是復(fù)制元素的同時(shí)復(fù)制元素中所綁定的事件。因此該元素的副本也同樣具有復(fù)制功能。如果不希望事件也被復(fù)制,則可以這么寫:
$('div').append( $('p').clone())
移動(dòng)節(jié)點(diǎn)
將頁(yè)面上的一個(gè)節(jié)點(diǎn)移動(dòng)到另外一個(gè)地方可以用jq的內(nèi)部和外部插入方法(append,appendTo,prepend,prependTo,after,before,insertAfter,insertBefore),直接將選中的節(jié)點(diǎn)傳遞進(jìn)去就可以實(shí)現(xiàn)移動(dòng)
<button>Move Me!</button>
<div id="box"></div>
實(shí)例
$("button").click(function(){
$(this).appendTo($("#box"));
//或者用append
$("#box").append(this);
});
復(fù)制節(jié)點(diǎn)也是常用的DOM操作之一,例如很多購(gòu)物網(wǎng)站的效果,用戶不僅可以通過(guò)單擊商品下方的“選擇”按鈕購(gòu)買相應(yīng)的產(chǎn)品,也可以通過(guò)鼠標(biāo)拖動(dòng)商品并將其放到購(gòu)物車中。這個(gè)商品拖動(dòng)功能就是用的復(fù)制節(jié)點(diǎn),將用戶選擇的商品所處的節(jié)點(diǎn)元素復(fù)制一次,并將其跟隨鼠標(biāo)移動(dòng),從而達(dá)到購(gòu)物效果。
HTML DOM結(jié)構(gòu)如下:
<p class="nm_p" title="歡迎訪問(wèn)腳本之家圖書館" >歡迎訪問(wèn)腳本之家圖書館</p>
<ul class="nm_ul">
<li title='PHP魔法'>簡(jiǎn)單易懂的PHP魔法</li>
<li title='C魔法'>簡(jiǎn)單易懂的C魔法</li>
<li title='JavaScript魔法'>簡(jiǎn)單易懂的JavaScript魔法</li>
<li title='JQuery'>簡(jiǎn)單易懂的JQuery魔法</li>
</ul>
如果單擊<li>元素后需要再?gòu)?fù)制一個(gè)<li>元素,可以使用clone()方法來(lái)完成,先來(lái)看看效果:
效果演示
歡迎訪問(wèn)腳本之家圖書館
簡(jiǎn)單易懂的PHP魔法
簡(jiǎn)單易懂的C魔法
簡(jiǎn)單易懂的JavaScript魔法
簡(jiǎn)單易懂的JQuery魔法
JQuery代碼如下:
$(function(){
$(".nm_ul li").click(function(){
$(this).clone(true).appendTo(".nm_ul"); // 復(fù)制當(dāng)前點(diǎn)擊的節(jié)點(diǎn),并將它追加到<ul>元素
})
});
在頁(yè)面中單擊隨便一項(xiàng)后,列表最下方出現(xiàn)該項(xiàng)的新節(jié)點(diǎn)。
復(fù)制節(jié)點(diǎn)后,被復(fù)制的新元素并不具有任何行為。如果需要新元素也具有復(fù)制功能(本例中是單擊事件),可以使用如下JQuery代碼:
$("ul li").click(function(){
$(this).clone(true).appendTo("ul"); // 注意參數(shù)true
//可以復(fù)制自己,并且他的副本也有同樣功能。
})
- jQuery的DOM操作之刪除節(jié)點(diǎn)示例
- jQuery學(xué)習(xí)筆記之jQuery的DOM操作
- jQuery DOM操作 基于命令改變頁(yè)面
- jQuery 選擇器、DOM操作、事件、動(dòng)畫
- jQuery DOM操作小結(jié)與實(shí)例
- jQuery常見(jiàn)面試題之DOM操作詳析
- 淺談jQuery 選擇器和dom操作
- Jquery基礎(chǔ)教程之DOM操作
- 鋒利的jQuery jQuery中的DOM操作
- jquery中dom操作和事件的實(shí)例學(xué)習(xí) 仿yahoo郵箱登錄框的提示效果
- jQuery DOM操作實(shí)例
- jQuery中DOM常見(jiàn)操作實(shí)例小結(jié)
相關(guān)文章
Jquery之Bind方法參數(shù)傳遞與接收的三種方法
這篇文章主要介紹了Jquery的Bind方法參數(shù)傳遞與接收的三種方法,需要的朋友可以參考下2014-06-06詳解JavaScript異步編程中jQuery的promise對(duì)象的作用
這篇文章主要介紹了JavaScript異步編程中jQuery的promise對(duì)象的作用,同時(shí)也談到了js的Dojo框架中promise模式的實(shí)現(xiàn),需要的朋友可以參考下2016-05-05jquery操作復(fù)選框(checkbox)的12個(gè)小技巧總結(jié)
本篇文章主要是對(duì)jquery操作復(fù)選框(checkbox)的12個(gè)小技巧進(jìn)行了總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02jquery的相對(duì)父元素和相對(duì)文檔定位示例代碼
在開(kāi)發(fā)jquery時(shí)候經(jīng)常需要用到定位,有相對(duì)父元素定位和相對(duì)文檔定位,本文為此總結(jié)下,有需要的朋友可以參考下2013-08-08jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問(wèn)題的解決方法
本文是小編給大家?guī)?lái)的jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行的原因及解決方法,在本文最下面還給大家附加jquery Ajax 不執(zhí)行回調(diào)函數(shù)success的原因,這兩個(gè)問(wèn)題都非常多見(jiàn),感興趣的朋友一起看下吧2016-08-08jQuery插件HighCharts實(shí)現(xiàn)2D柱狀圖、折線圖的組合多軸圖效果示例【附demo源碼下載】
這篇文章主要介紹了jQuery插件HighCharts實(shí)現(xiàn)2D柱狀圖、折線圖的組合多軸圖效果,結(jié)合實(shí)例形式分析了jQuery使用HighCharts插件同時(shí)繪制柱狀圖、折線圖的實(shí)現(xiàn)技巧與相關(guān)操作步驟,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03jquery層級(jí)選擇器(匹配父元素下的子元素實(shí)現(xiàn)代碼)
下面小編就為大家?guī)?lái)一篇jquery層級(jí)選擇器(匹配父元素下的子元素實(shí)現(xiàn)代碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09