jQuery学习笔记(二)DOM操作

本系列适合作为JQ的复习文档。

本章主要参考来源:绿叶学习网 - jQuery入门教程

3 DOM操作

DOM,“Document Object Model(文档对象模型)”。

3.1 创建节点

var e = $(HTML标签字符串);
$().append(e); //append()方法表示向所选元素内部的“末尾”插入内容

PS:对于jQuery创建的节点,变量命名习惯用“$”开头,以表示这是一个jQuery对象。

对比;JS的语法:
var e = document.createElement("元素名"); //创建元素节点
var t = document.createTextNode("元素内容"); //创建文本节点
e.appendChild(t); //把元素内容插入元素中去

3.2 插入节点

两组的效果是相同的,记一组就好,推荐第2组。
//第1组
append()、prepend()、before()、after()
//第2组
appendTo()、prependTo()、insertBefore()、insertAfter()

3.2.1 内部插入节点
  • append()和appendTo()
    $(A).append(B) //表示在A内部的“末尾”插入B。
    $(A).appendTo(B) //表示将A插入B内部的“末尾”。
  • prepend()和prependTo();
    $(A).prepend(B) //表示在A内部的“开始”插入B。
    $(A).prependTo(B) //表示将A插入B内部的“开始”。
3.2.2 外部插入节点
  • before()和insertBefore()
    $(A).before(B) //表示在A“之前”插入B。
    $(A).insertBefore(B) //表示将A插入B“之前”。
  • after()和insertAfter()
    $(selector).after(content) //表示在content之后插入selector。
    $(content).insertAfter(selector) //表示在content之后插入selector。

3.3 删除节点

$(A).remove(expression)表示删除符合expression条件的A元素。当expression省略,即$(A).remove()时,表示删除所有的A元素。
一般情况下,建议使用无参数的remove()方法,直接把筛选条件放在$()选择器里面,没必要多此一举把筛选条件放在方法后面。

3.3.1 remove()
$(A).remove() // 彻底删除,删除元素和事件;将自身节点以及后代节点一并删除

remove()方法可以返回一个值,返回值类型为删除的jQuery节点对象。
使用变种:来进行两个元素的互换
$("#btn").click(function () {
//将内容为“CSS”这一个li删除并赋值给$li1
var $li1 = $("ul li:eq(1)").remove();
$($li1).insertAfter("ul li:eq(1)");
//将内容为“jQuery”这一个li删除并赋值给$li2
var $li2 = $("ul li:eq(3)").remove();
$($li2).insertBefore("ul li:eq(1)");
})

3.3.2 detach()
$(A).detach() //半删除,删除元素,不删除事件;将自身节点以及后代节点一并删除

总结:
当我们删除节点后,如果希望重新使用该节点,并且希望被删除的节点在重新使用后还能保留原来绑定的事件,应该使用detach()而不是remove()。

3.3.3 empty()
$(A).empty() //清空A,仅删除后代节点,而保留自身节点。

3.4 复制节点

$(A).clone() //将A节点复制,但不复制A节点所绑定的事件。
$(A).clone(true) //将A节点复制,并且复制A节点所绑定的事件。

clone()方法的布尔参数默认为false。

3.5 替换节点

如果在替换节点之前,已经为元素绑定了事件;那么,使用replaceWith()或replaceAll()之后,该元素所绑定的事件会消失。因此,如果想要保留事件,则需要在新元素上重新绑定事件。

3.5.1 replaceWith()
$(A).replaceWith(B) //表示用B来替换A。
3.5.2 replaceAll()
$(A).replaceAll(B) //表示用A来替换B。

3.6 包裹节点

3.6.1 wrap()
 $(A).wrap(B) //表示用B元素将A元素包裹起来。
3.6.2 wrapAll()
 $(A).wrapAll(B) //表示用1个B来包裹所有匹配的元素A。与wrap()不等价
3.6.3 wrapInner()
$(A).wrapInner(B) //表示将A元素“所有内部子元素”使用B元素包裹起来(不包括A本身)。

3.7 遍历节点

$(selector).each(function(index,element)) //each() 方法规定为每个匹配元素规定运行的函数。
 // index - 选择器的 index 位置
// element - 当前的元素(也可使用 "this" 选择器)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容