在此之前请牢记,jquery 是一个合集对象!!!!

1.节点创建


js创建方法:

创建元素:document.createElement

设置属性:setAttribute 添加文本:innerHTML

加入文档:appendChild

jq创建方法:

前三项可以合并成一个,直接向$()括号中加入要设置的html结构及内容,

然后append()添加到某个容器中 let div=$('jq创建'); $(body).append(div)

2.节点插入方法


向元素内部添加

append() 与appendTo

添加到容器最后的位置,这两个实现一样的功能,目标和源相对换

prepend() 与prependTo()

添加到容器最前的位置,这两个实现一样的功能,目标和源相对换

兄弟节点的添加

after() 与 insertAfter

功能相同,在选中的元素后面添加兄弟节点,目标和源相对换

before() 与 insertBefore

功能相同,在选中的元素前面添加兄弟节点,目标和源相对换

注意:

after() 和before()

都可以接收HTML字符串,DOM 元素,元素数组,用逗号隔开

insertAfter,insertBefore

这两个要插入的元素只能有一个根节点,比如如果想插入两个并列的p,只有第一个能成功

3.节点的删除


empty()

清空子节点,自己本身还在

remove()

连自己也删除,以及绑定的事件和数据也不再了,remove(selector)可以传递参数用来过滤将要被删除的元素集合

比如$('p').remove(':contains("xx")'),这句中,:contains("xx")是对前面所选中的$('p')元素集合的又一层筛选,只删除这些

detach()

跟remove一样,但是是临时的,保留数据与事件,下一个时间段还能继续用,数据与事件还在,内存对象还在

总结:

empty 身体被掏空

remove 自杀

detach 隐身

4.节点的复制与替换


clone()

默认只复制结构和内容,如果加上参数true,将会连着数据和事件一起复制

在插入文档中之前,还能先给他设置样式之类的,而不是必须插入之后才能修改

$(".left").append( $(this).clone().css('color','red') )

replaceWith() 与 replaceAll()

replaceWith(newContent) 用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合

$('div:eq(1)').replaceWith('<div>3</div>') //把第二个div替换成第三个

replaceAll(target) 用集合的匹配元素替换每个目标元素
和上一个功能相似,目标和源相反
$('<div>4</div>').replaceAll('div:eq(1)') //用div4 替换第二个
两者都会删除相关的所有数据和事件处理程序,replaceWith返回jquery对象,返回替换前的节点

wrap() 添加父元素
$('div:eq(0)').wrap('<div class="container"></div>')//把第一个div用container包裹起来
wrap(func),可以有回调函数,返回需要传入的父元素
$('div:contains("5")').wrap(()=>{
return '<div class="container"></div>'
})

wrapAll() 将集中的元素用其他元素包裹起来
$('p').wrapAll('<div></div>')给所有的p加一个统一的div,这些p会成为兄弟节点
wrapAll(func) 一个回调函数 返回用于包裹匹配元素的html内容或者jquery对象,通过回调的方式可以单独处理每一个元素,等同于wrap
$('input:eq(0)').on('click',()=>{
$('p').wrapAll('<div class="right"></div>')
})

注意

如果两个元素不是同一级别的,包裹后会变成同一级别的,且像包裹的比较深的那个靠近

wrap() 与wrapAll() 的区别
第一个是给选中每个元素分别添加一个父亲,第二个是给选中的元素添加同一个父亲,第二个如果有回调函数的话,等同于第一个

unwrap() 去掉父元素 不接受任何参数,参数无效

wrapInner() 给匹配到的元素的内部,增加父元素
$('div').wrapInner('<p></p>') 给div的内部套一个p标签,用来包裹div中原来的所有元素
wrapInner(func),函数返回那个包裹层

复制与替换总结

wrap单独一件外套,wrapInner 内衣 wrapAll 给所有的人穿一个外套 wrapAll(func)等同于wrap
unwrap 脱外套
detach 隐身 remove 自杀 empty 身体被掏空
clone 复制 true 全复制,有事件和数据,默认无
target.replaceWith(content) target被content替换掉;
 content.replaceAll(target) 用content来替换掉target
注意内联元素是不能包裹块级元素

5.节点遍历


children()

查找儿子,可以传参加选择器筛选
find()

查找子孙元素,不止儿子,必须传参,要查找的元素 $('.item-ii').find('li') 也可以写成$('li','.item-ii')
parent()

查找父亲,如果里面有参数,这个参数是对查找出来的父亲集合的再筛选(jquery是一个对象合集。。。)
parent(':last') 找到这个合集以后,再选择最后一个
parents()

查找祖先节点,用法类似find()
closest()

查找最近的满足条件的本身或者祖先,只返回0个或者1个,和parents()相似,更精确化

不同点:
1.closest会加上自身,parents不会
2.closest查找到第一个匹配的就会停止,parents会一直查到根元素
3,结果不同,closet返回包含0个或者1个对象,parents返回0个或者1个或者多个
4.parents(':first')第一个父亲元素

next()
查找紧邻的后面的兄弟元素,注意是一个,但是jquery是要给对象合集,比如页面中好多p元素,那么查找p的next,就可能出现很多。。。
prev()

用法与next() 相同,向上查找,只查一个哟

siblings()

所有的兄弟节点,无参数,如果有参数就是对查找到的合集进行再过滤,jQuery是一个对象合集哈哈哈哈

add()

多选的意思,比如
$('div.co').add('.444').css('font-size','24px') //选择class 为co 和 444 的元素,给他们加样式

each()

就是js中的forEach,回调函数中两个参数,index,item,this每次指向item

jquery基础学习之DOM篇(二)的更多相关文章

  1. jQuery基础修炼圣典—DOM篇(二)jQuery遍历

    1.children()方法 jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法.这里需要注意:.children(selector) 方法是返回匹配 ...

  2. jQuery基础学习2——DOM和jQuery对象

    <body> <h3>例子</h3> <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p> < ...

  3. jQuery基础修炼圣典—DOM篇(一)

    一.DOM节点的创建 1.创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. ...

  4. jquery基础学习之事件篇(三)

    一.鼠标事件 click 单击 与 dbclick 双击 用于监听用户的点击操作,在同一元素上同时绑定 click 和 dblclick 事件是不可取的...根据浏览器支持不同一个点击事件是由mous ...

  5. jquery基础学习之样式篇(一)

    一.安装与使用 官网下载,然后引入 <script src="js/jquery-3.3.1.js"></script>,这是生产版本,开发版本替换成min ...

  6. jquery基础学习之动画篇(四)

    一,动画效果 hide() show() 隐藏与显示 hide(options) 隐藏 对应display:none,有参数就会变成动画, $(document).click(function () ...

  7. jquery基础学习之AJAX篇(五)

    理解不深,只知道这么用 jquery 中ajax的请求方法 $.ajax({ url:‘http://...’, //请求网址 type:'GET', //请求方法 success:function( ...

  8. JQuery基础学习总结

    JQuery基础学习总结 简单总结下JQuery: 一:事件 1.change事件 <!DOCTYPE html> <html lang="en"> < ...

  9. 【总结整理】JQuery基础学习---DOM篇

    前言: 先介绍下需要用到的浏览器提供的一些原生的方法(这里不处理低版本的IE兼容问题) 创建流程比较简单,大体如下: 创建节点(常见的:元素.属性和文本) 添加节点的一些属性 加入到文档中 流程中涉及 ...

随机推荐

  1. 安装python后,启动时提示“0x00000000001”内存错误

    直关资料: https://www.cnblogs.com/onewalee/p/7887747.html 问题情况:安装python后,在CMD命令中启动python就提示一个内存错误的对话框,重新 ...

  2. VueThink配置

    vuethink 配置 原文地址:http://blog.csdn.net/hero82748274/article/details/76100938

  3. Oracle Grid 11.2.0.4 安装是出现"INS-30510: Insufficient number of ASM disks selected."

    最新文章:Virson's Blog 错误的原因是由于磁盘数和冗余层级不匹配: 如果创建用来存放OCR和VOTEDISK的ASM磁盘组,那么External.Normal.High三种冗余级别对应的F ...

  4. Mysql 导入导出csv 中文乱码

    这篇文章介绍了Mysql 导入导出csv 中文乱码问题的解决方法,有需要的朋友可以参考一下   导入csv: load data infile '/test.csv' into table table ...

  5. Java如何检查端口是否被使用?

    在Java编程中,如何扫描打开的端口(是否被使用)? 以下示例显示如何通过创建 Socket 对象来检查主机上打开或正在使用的端口(相当于一个简单的端口扫描器). package com.yiibai ...

  6. c# 正则匹配对称括号

    https://stackoverflow.com/questions/7898310/using-regex-to-balance-match-parenthesis

  7. EasyRadius 动态域名DDNS设置工具,支持WayOS三代,完美解决近段时间3322和每步不稳定问题

    以下软件只适合拥有公网IP的用户哦,要是您没有公网IP,只能和我们联系,获取VPN了 EasyRadius从1.65开始就提供DDNS,中途由于我们升级了安全性,导致DDNS更新失败 这段时间由于33 ...

  8. 【中间件安全】Tomcat 安全加固规范

    1. 适用情况 适用于使用Tomcat进行部署的Web网站. 2. 技能要求 熟悉Tomcat配置操作,能够利用Tomcat进行建站,并能针对站点使用Tomcat进行安全加固. 3. 前置条件 1.根 ...

  9. U3D常用题

    最先执行的方法是:1.(激活时的初始化代码)Awake,2.Start.3.Update[FixUpdate.LateUpdate].4.(渲染模块)OnGUI.5.再向后,就是卸载模块(TearDo ...

  10. Git工作流程最佳实践总结

    Git作为一个目前非常流行的版本管理工具,深受开发者的喜爱.那么怎样才能将Git的作用发挥的更好呢?我根据实际的项目经验,归纳总结了以下Git工作流的最佳实践.这里所谓的最佳,是经过多次项目经验后,根 ...