jQuery基础之Dom篇总结

dom小知识点很多,总是过段时间又忘了,这次做个总结吧。


Dom节点的创建

jQuery节点创建常见的就是直接把这个节点的结构给通过HTML标记字符串描述出来。
创建元素节点:

$("<div></div>")

创建文本节点:
$("<div>我是文本节点</div>")

创建属性节点:
$("<div id='test' class='aaron'>我是文本节点</div>")

Dom节点的插入

内部插入

.append()前面是被插入的对象,后面是要在对象内插入的元素内容
.appendTo()前面是要插入的元素内容,而后面是被插入的对象
.prepend()方法将指定元素插入到匹配元素里面作为它的第一个子元素
.prependTo()方法前面是要插入的元素内容,后面是被插入的对象,插到之前。

  例子
    <h2>通过append与appendTo添加元素</h2>
    <button id="btn1">点击通过jQuery的append添加元素</button>
    <button id="btn2">点击通过jQuery的appendTo添加元素</button>
    <div class="content"></div>
<script>
    $("#btn1").on('click',function(){
        $('.content').append($('<div class="append">通过append方法添加的元素</div>'))
        // $('.content').prepend($('<p>prepend方法插入的元素!在前面哦!</p>'))
    })
    $('#btn2').on('click',function(){
        $('<div class="appendTo">通过appendTo方法添加的元素</div>').appendTo($('.content'))
    })
</script>

外部插入

.before():在选中元素后插入参数所指定的内容,作为其兄弟节点
.after():在选中元素前插入参数所指定的内容,作为其兄弟节点

before与after都是用来对相对选中元素外部增加相邻的兄弟节点
2个方法都是都可以接收HTML字符串,DOM 元素,元素数组,或者jQuery对象,用来插入到集合中每个匹配元素的前面或者后面
2个方法都支持多个参数传递after(div1,div2,…)

insertAfter()与insertBefore()
insertBefore()和before的效果是一样的,只不过使用方式不一样。
insertBefore():插入的内容在前,括号里是要插入的节点。
不支持多参数!

例子
<h2>通过insertBefore与insertAfter添加元素</h2>
    <button id="bt1">点击通过jQuery的insertBefore添加元素</button>
    <button id="bt2">点击通过jQuery的insertAfter添加元素</button>
    <div class="aaron">
        <p class="test1">测试insertBefore,不支持多参数</p>
    </div>
    <div class="aaron">
        <p class="test2">测试insertAfter,不支持多参数</p>
    </div>
<script>
    $('#bt1').on('click',function(){
        $('<p style="color:red">测试insertBefore方法增加</p>', '<p style="color:red">多参数</p>').insertBefore($(".test1"));
    })
</script>

Dom节点的删除

empty():顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了指定元素中的所有子节点。
remove()会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。remove可以传递一个选择器表达式用来过滤匹配元素,可以选择性的删除指定的节点
例如:

$("p").remove(":contains('3')") 移除所有元素中包含3文本的
 此代码也可以写为:
 $("p").filter(":contains('3')").remove()

保留数据的删除操作detach():
这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。

$(“div”).detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。detach方法是JQuery特有的,所以它只能处理通过JQuery的方法绑定的事件或者数据。

Dom节点的复制与替换

  1. clone():
    .clone() 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了。.clone()是浅拷贝。 .clone(true)是深拷贝。复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了。.clone()是浅拷贝。 .clone(true)是深拷贝。
  2. replaceWith(), .replaceAll( target ):
    .replaceWith( newContent ):用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合.replaceWith( newContent ):用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合
    .replaceAll( target ) :用集合的匹配元素替换每个目标元素
    .replaceAll()和.replaceWith()功能类似,主要是目标和源的位置区别
    replaceWith()与.replaceAll() 方法会删除与节点相关联的所有数据和事件处理程序
    .replaceWith()方法,和大部分其他jQuery方法一样,返回jQuery对象,所以可以和其他方法链接使用。返回的是Jquery对象引用的是替换前的节点。
  3. wrap()方法:
    .wrap( wrappingElement ):在集合中匹配的每个元素周围包裹
    .wrap( function ) :一个回调函数,返回用于包裹匹配元素的HTML 内容或 jQuery 对象。
  4. unwrap()方法:
    作用与wrap方法是相反的。将匹配元素集合的父级元素删除,保留自身(和兄弟元素,如果存在)在原来的位置。
  5. wrapAll()方法:
    wrap是针对单个dom元素处理,如果要将集合中的元素用其他元素包裹起来,也就是给他们增加一个父元素,针对这样的处理,JQuery提供了一个wrapAll方法
    .wrapAll( wrappingElement ):给集合中匹配的元素增加一个外面包裹HTML结构
    .wrapAll( function ) :一个回调函数,返回用于包裹匹配元素的 HTML 内容或 jQuery 对象。
  6. .wrapInner( wrappingElement ):
    .wrapInner( wrappingElement ): 给集合中匹配的元素的内部,增加包裹的HTML结构给集合中匹配的元素的内部,增加包裹的HTML结构
    将合集中的元素内部所有的子元素用其他元素包裹起来,并当作指定元素的子元素。
    .wrapInner( function ) :允许我们用一个callback函数做参数,每次遇到匹配元素时,该函数被执行,返回一个DOM元素,jQuery对象,或者HTML片段,用来包住匹配元素的内容
    注意:
    当通过一个选择器字符串传递给.wrapInner() 函数,其参数应该是格式正确的 HTML,并且 HTML 标签应该是被正确关闭的。

遍历

后代:
children() 方法返回被选元素的所有直接子元素。该方法只会向下一级对DOM 树进行遍历。
.children()方法选择性地接受同一类型选择器表达式
例如:$(“div”).children(".selected")
因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
选择器表达式对于 .find() 是必需的参数。如果我们需要实现对所有后代元素的取回,可以传递通配选择器 ‘*’。
选择器 context 是由 .find() 方法实现的;因此,$(’.item-ii’).find(‘li’) 等价于 $(‘li’, ‘.item-ii’)(找到类名为item-ii的标签下的li标签)。
例子:

    var $spans = $('span');
    $("p").find($spans).css('color', 'red');

祖先:
parent() 方法返回被选元素的直接父元素。该方法只会向上一级对 DOM 树进行遍历。

parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。可以使用可选参数来过滤对祖先元素的搜索。

parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

closest():从元素本身开始,在DOM树上逐级向上级元素匹配,并返回最先匹配的祖先元素树上逐级向上级元素匹配,并返回最先匹配的祖先元素。
$(“div”).closet("li’) 在div元素中往上查找所有的li元素

.parents()和.closest()的区别
1.起始位置不同:.closest开始于当前元素 .parents开始于父元素
2.遍历的目标不同:.closest要找到指定的目标,.parents遍历到文档根元素,closest向上查找,直到找到一个匹配的就停止查找,parents一直查找到根元素,并将匹配的元素加入集合
3.结果不同:.closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象

同胞:
next() 方法返回被选元素的下一个同胞元素。该方法只返回一个元素。选择性地接受同一类型选择器表达式
prev() 查找指定元素集合中每一个元素紧邻的前面同辈元素的元素集合.选择性地接受同一类型选择器表达式
nextAll() 返回被选元素的所有跟随的同胞元素。
nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
siblings() 方法返回被选元素的所有同胞元素。选择性地接受同一类型选择器表达式

add():将元素添加到匹配的元素集合中,.add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。

each():
    $("li").each(function(index, element) {
         index 索引 0,1
         element是对应的li节点 li,li
         this 指向的是li
    })

each是一个for循环的包装迭代器
each通过回调的方式处理,并且会有2个固定的实参,索引与元素
each回调方法中的this指向当前迭代的dom元素
例子:

    <p>1</p>
    <p>2</p>
    <p>3</p>
    <p>4</p>
    <p>5</p>
    <p>6</p>
<script>
    $('p').each(function(index,ele){
        $(this).css('color','red');
    });
    $('p').each(function(index,ele){
        if(index %2){
            $(this).css('color','blue');
        };
    });
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值