在此之前请牢记,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. SDL示例一:实现七段数码管的显示

    [时间:2017-05] [状态:Open] [关键词:sdl2,数字,七段数码管,图形显示,示例代码] 0 引言 本文是针对我的step-into-sdl2/7LedDigit的原理介绍,有兴趣的可 ...

  2. HttpPost请求将json作为请求体传入的简单处理方法

    https://www.cnblogs.com/mambahyw/p/7875142.html **************************************************** ...

  3. Android开发(十六)——Android listview onItemClick事件失效的原因

    参考: Android listview onItemClick事件失效的原因.http://blog.csdn.net/wangchun8926/article/details/8793178

  4. 【HTTPS】自签CA证书 && nginx配置https服务

    首先,搭建https服务肯定需要一个https证书.这个证书可以看做是一个应用层面的证书.之所以这么说是因为https证书是基于CA证书生成的.对于正式的网站,CA证书需要到有资质的第三方证书颁发机构 ...

  5. Image Lazy Load:那些延时加载图片的开源插件(jQuery)

    图片延时加载技术对大流量的网站来说是十分实用的.目前图片在网站中大量使用,如果不加处理的话会对服务器和带宽造成级大压力,通过只渲染当前用户可见区域的图片,可以极大地减少网站的请求数,降低网络带宽资源. ...

  6. 解决Hive与Elasticsearch共有库 guava 冲突 NoSuchMethodError

    情况描述 解决方法 方法一:Shade and relocate 简介 Shade Elasticsearch 引入shade ES jar 方法二:修改集群Job配置策略(未实验) 情况描述 使用J ...

  7. msm codec 代码跟踪

    sound/soc/codecs/msm8x16-wcd.c static struct spmi_device_id msm8x16_wcd_spmi_id_table[] = { {"w ...

  8. jquery 选择对象随心所欲,遍历数组更是易如反掌

    jquery只要研究总结透彻了,那选择对象就会随心所欲,遍历数组更是易如反掌.选对对象,才能“娶妻生子”,才能有后续的数据处理.呵呵遍历对很关键. 怕只怕,学东西浅尝辄止一知半解.本篇特别研究总结jq ...

  9. Java8学习笔记(七)--Collectors

    本系列文章翻译自@shekhargulati的java8-the-missing-tutorial 你已经学习了Stream API能够让你以声明式的方式帮助你处理集合.我们看到collect是一个将 ...

  10. linux mysql卸载

    卸载mysql 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的包: mysql-libs-5.1.71-1.el6.x86_64 2.删除mys ...