jQuery的DOM節(jié)點操作篇

DOM節(jié)點操作


1.創(chuàng)建節(jié)點

一.創(chuàng)建節(jié)點
為了使頁面更加智能化贝淤,有時我們想動態(tài)的在 html 結(jié)構(gòu)頁面添加一個元素標簽,那么
在插入之前首先要做的動作就是:創(chuàng)建節(jié)點本慕。

var box = $('<div id="box">節(jié)點</div>'); //創(chuàng)建一個節(jié)點
$('body').append(box); //將節(jié)點插入到<body>元素內(nèi)部

2.插入節(jié)點

內(nèi)部插入節(jié)點方法

方法名 描述
append(content) 向指定元素內(nèi)部后面插入節(jié)點 content
append(function (index, html) {}) 使用匿名函數(shù)向指定元素內(nèi)部后面插入節(jié)點
appendTo(content) 將指定元素移入到指定元素 content 內(nèi)部后面
prepend(content) 向指定元素 content 內(nèi)部的前面插入節(jié)點
prepend(function (index, html) {}) 使用匿名函數(shù)向指定元素內(nèi)部的前面插入節(jié)點
prependTo(content) 將指定元素移入到指定元素 content 內(nèi)部前面

實例

$('div').append('<strong>節(jié)點</strong>'); //向 div 內(nèi)部插入 strong 節(jié)點
$('div').append(function (index, html) { //使用匿名函數(shù)插入節(jié)點秕岛,html 是原節(jié)點
return '<strong>節(jié)點</strong>';
});
$('span').appendTo('div'); //講 span 節(jié)點移入 div 節(jié)點內(nèi)
$('span').appendTo($('div')); //同上
$('div').prepend('<span>節(jié)點</span>'); //將 span 插入到 div 內(nèi)部的前面
$('div').append(function (index, html) { //使用匿名函數(shù),同上
return '<span>節(jié)點</span>';
});
$('span').prependTo('div'); //將 span 移入 div 內(nèi)部的前面
$('span').prependTo($('div')); //同上

外部插入節(jié)點方法

方法名 描述
after(content) 向指定元素的外部后面插入節(jié)點 content
after(function (index, html) {}) 使用匿名函數(shù)向指定元素的外部后面插入節(jié)點
before(content) 向指定元素的外部前面插入節(jié)點 content
before(function (index, html) {}) 使用匿名函數(shù)向指定元素的外部前面插入節(jié)點
insertAfter(content) 將指定節(jié)點移到指定元素 content 外部的后面
insertBefore(content) 將指定節(jié)點移到指定元素 content 外部的前面

實例

$('div').after('<span>節(jié)點</span>'); //向 div 的同級節(jié)點后面插入 span
$('div').after(function (index, html) { //使用匿名函數(shù)度苔,同上
return '<span>節(jié)點</span>';
});
$('div').before('<span>節(jié)點</span>'); //向 div 的同級節(jié)點前面插入 span
$('div').before(function (index, html) { //使用匿名函數(shù),同上
return '<span>節(jié)點</span>';
});
$('span').insertAfter('div'); //將 span 元素移到 div 元素外部的后面
$('span').insertBefore('div'); //將 span 元素移到 div 元素外部的前面

3.包裹節(jié)點

方法名 描述
wrap(html) 向指定元素包裹一層 html 代碼
wrap(element) 向指定元素包裹一層 DOM 對象節(jié)點
wrap(function (index) {}) 使用匿名函數(shù)向指定元素包裹一層自定義內(nèi)容
unwrap() 移除一層指定元素包裹的內(nèi)容
wrapAll(html) 用 html 將所有元素包裹到一起
wrapAll(element) 用 DOM 對象將所有元素包裹在一起
wrapInner(html) 向指定元素的子內(nèi)容包裹一層 html
wrapInner(element) 向指定元素的子內(nèi)容包裹一層 DOM 對象節(jié)點
wrapInner(function (index) {}) 用匿名函數(shù)向指定元素的子內(nèi)容包裹一層
$('div').wrap('<strong></strong>'); //在 div 外層包裹一層 strong
$('div').wrap('<strong>123</strong>'); //包裹的元素可以帶內(nèi)容
$('div').wrap('<strong><em></em></strong>'); //包裹多個元素
$('div').wrap($('strong').get(0)); //也可以包裹一個原生 DOM
$('div').wrap(document.createElement('strong')); //臨時的原生 DOM
$('div').wrap(function (index) { //匿名函數(shù)
return '<strong></strong>';
});
$('div').unwrap(); //移除一層包裹內(nèi)容浑度,多個需移除多次
$('div').wrapAll('<strong></strong>'); //所有 div 外面只包一層 strong
$('div').wrapAll($('strong').get(0)); //同上
$('div').wrapInner('<strong></strong>'); //包裹子元素內(nèi)容
$('div').wrapInner($('strong').get(0)); //DOM 節(jié)點
$('div').wrapInner(function () { //匿名函數(shù)
return '<strong></strong>';
});

注意:.wrap()和.wrapAll()的區(qū)別在前者把每個元素當成一個獨立體寇窑,分別包含一層外層;后者將所有元素作為一個整體作為一個獨立體箩张,只包含一層外層甩骏。這兩種都是在外層包含窗市,而.wrapInner()在內(nèi)層包含。


4.節(jié)點操作

除了創(chuàng)建饮笛、插入和包裹節(jié)點咨察,jQuery 還提供了一些常規(guī)的節(jié)點操作方法:復(fù)制、替換和刪除節(jié)點福青。
復(fù)制節(jié)點

$('body').append($('div').clone(true)); //復(fù)制一個節(jié)點添加到 HTML 中
注意:clone(true)參數(shù)可以為空摄狱,表示只復(fù)制元素和內(nèi)容,不復(fù)制事件行為无午。而加上 true參數(shù)的話媒役,這個元素附帶的事件處理行為也復(fù)制出來。

刪除節(jié)點

$('div').remove(); //直接刪除 div 元素

注意:.remove()不帶參數(shù)時宪迟,刪除前面對象選擇器指定的元而.remove()本事也可以帶選擇符參數(shù)的酣衷,比如:$('div').remove('#box');只刪除 id=box 的 div。
保留事件的刪除節(jié)點

$('div').detach(); //保留事件行為的刪除

注意:.remove()和.detach()都是刪除節(jié)點次泽,而刪除后本身方法可以返回當前被刪除的節(jié)點對象穿仪,但區(qū)別在于前者在恢復(fù)時不保留事件行為,后者則保留意荤。
清空節(jié)點

$('div').empty(); //刪除掉節(jié)點里的內(nèi)容

替換節(jié)點

$('div').replaceWith('<span>節(jié)點</span>'); //將 div 替換成 span 元素
$('<span>節(jié)點</span>').replaceAll('div'); //同上

注意:節(jié)點被替換后啊片,所包含的事件行為就全部消失了。



上一篇: jQuery的基礎(chǔ)DOM,CSS操作篇
下一篇: jQuery的表單選擇器篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袭异,一起剝皮案震驚了整個濱河市钠龙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌御铃,老刑警劉巖碴里,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異上真,居然都是意外死亡咬腋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門睡互,熙熙樓的掌柜王于貴愁眉苦臉地迎上來根竿,“玉大人,你說我怎么就攤上這事就珠】芸牵” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵妻怎,是天一觀的道長壳炎。 經(jīng)常有香客問我,道長逼侦,這世上最難降的妖魔是什么匿辩? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任腰耙,我火速辦了婚禮,結(jié)果婚禮上铲球,老公的妹妹穿的比我還像新娘挺庞。我一直安慰自己,他們只是感情好稼病,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布选侨。 她就那樣靜靜地躺著,像睡著了一般然走。 火紅的嫁衣襯著肌膚如雪侵俗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天丰刊,我揣著相機與錄音,去河邊找鬼增拥。 笑死啄巧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掌栅。 我是一名探鬼主播秩仆,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猾封!你這毒婦竟也來了澄耍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晌缘,失蹤者是張志新(化名)和其女友劉穎齐莲,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷箕,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡选酗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岳枷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芒填。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖空繁,靈堂內(nèi)的尸體忽然破棺而出殿衰,到底是詐尸還是另有隱情,我是刑警寧澤盛泡,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布闷祥,位于F島的核電站,受9級特大地震影響饭于,放射性物質(zhì)發(fā)生泄漏蜀踏。R本人自食惡果不足惜维蒙,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望果覆。 院中可真熱鬧颅痊,春花似錦、人聲如沸局待。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钳榨。三九已至舰罚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間薛耻,已是汗流浹背营罢。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饼齿,地道東北人饲漾。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像缕溉,于是被迫代替她去往敵國和親考传。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容