在此之前请牢记,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. Tomcat是什么:Tomcat与Java技、Tomcat与Web应用以及Tomcat基本框架及相关配置

    1.Tomcat是什么       Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器. 类似功能的还有:Jetty. ...

  2. 初识Spring Security

    本文参考或者转自:http://haohaoxuexi.iteye.com/blog/2154299 1.新建Spring Security配置文件spring-security.xml:<?x ...

  3. 一些jquery特效收集

    jQuery幻灯片插件带投影的图片叠加切换幻灯片轮播 特效:http://www.jsfoot.com/jquery/images/ jquery文字滚动上下间歇文字滚动 http://www.17s ...

  4. github新建repositories后import已有code 随后同步更新

    github上,可以forks别人已有的项目,而且同步更新合并也很方便,但如果是自己新建的项目,而导入的是别人的代码修改后,别人的又更新了,自己想获取他的更新,怎么办呢?其实很简单. # git cl ...

  5. Java知多少(75)Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...

  6. 假期小结 BIO, NIO, AIO

    虽然忙碌,但仍小有收获,开心. 引子 BIO: Blocking IO,阻塞式IO NIO: Non-blocking IO,非阻塞式IO AIO: Async IO,异步IO 问题 什么是阻塞式IO ...

  7. [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架【翻译】

    [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架[翻译] 标记声明:蓝色汉子为翻译上段英 ...

  8. USI和USCI的区别

    在 MSP430 系列中微控制器中有三种串行通讯模块.它们分别是 USART . USI 和 USCI . USART 支持同一硬件模块的两种串行模式,分别是 UART 和 SPI . USART 实 ...

  9. Java之CountDownLatch使用

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法 public CountDownLatch(int count); pu ...

  10. IOC容器特性注入第七篇:请求上下文作用域

    Ninject的对象作用域: Transient .InTransientScope() 每次调用创建新实例. Singleton .InSingletonScope() 单例,仅创建一个实例. Th ...