jquery基础学习之DOM篇(二)
在此之前请牢记,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篇(二)的更多相关文章
- jQuery基础修炼圣典—DOM篇(二)jQuery遍历
1.children()方法 jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法.这里需要注意:.children(selector) 方法是返回匹配 ...
- jQuery基础学习2——DOM和jQuery对象
<body> <h3>例子</h3> <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p> < ...
- jQuery基础修炼圣典—DOM篇(一)
一.DOM节点的创建 1.创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. ...
- jquery基础学习之事件篇(三)
一.鼠标事件 click 单击 与 dbclick 双击 用于监听用户的点击操作,在同一元素上同时绑定 click 和 dblclick 事件是不可取的...根据浏览器支持不同一个点击事件是由mous ...
- jquery基础学习之样式篇(一)
一.安装与使用 官网下载,然后引入 <script src="js/jquery-3.3.1.js"></script>,这是生产版本,开发版本替换成min ...
- jquery基础学习之动画篇(四)
一,动画效果 hide() show() 隐藏与显示 hide(options) 隐藏 对应display:none,有参数就会变成动画, $(document).click(function () ...
- jquery基础学习之AJAX篇(五)
理解不深,只知道这么用 jquery 中ajax的请求方法 $.ajax({ url:‘http://...’, //请求网址 type:'GET', //请求方法 success:function( ...
- JQuery基础学习总结
JQuery基础学习总结 简单总结下JQuery: 一:事件 1.change事件 <!DOCTYPE html> <html lang="en"> < ...
- 【总结整理】JQuery基础学习---DOM篇
前言: 先介绍下需要用到的浏览器提供的一些原生的方法(这里不处理低版本的IE兼容问题) 创建流程比较简单,大体如下: 创建节点(常见的:元素.属性和文本) 添加节点的一些属性 加入到文档中 流程中涉及 ...
随机推荐
- rc.d/rc.local 自动启 tomcat 启不来
针对自己配置的JDK环境有可能会出现这样的情况. tomcat能启来.但自启动就不行,原因 JDK是后安装的,环境变量配置在 /etc/profile 里面. tomcat 配了自启动.但reboot ...
- 【原】为DevExpress的ChartControl添加Y轴控制 和 GridControl中指定列添加超级链接
一.控制ChartControl的Y轴范围 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件,具体代码如下: ...
- 用panels 制作drupal首页
1.下载zen主题 路径:https://www.drupal.org/project/zen2.“启用并设为默认”3.基于zen制作子主题 把zen目录下STARTERKIT文件夹,复制到sites ...
- Fixed Partition Memory Management UVALive - 2238 建图很巧妙 km算法左右顶点个数不等模板以及需要注意的问题 求最小权匹配
/** 题目: Fixed Partition Memory Management UVALive - 2238 链接:https://vjudge.net/problem/UVALive-2238 ...
- Hadoop、Spark 集群环境搭建
1.基础环境搭建 1.1运行环境说明 1.1.1硬软件环境 主机操作系统:Windows 64位,四核8线程,主频3.2G,8G内存 虚拟软件:VMware Workstation Pro 虚拟机操作 ...
- SSM框架整合搭建教程
自己配置了一个SSM框架,打算做个小网站,这里把SSM的配置流程详细的写了出来,方便很少接触这个框架的朋友使用,文中各个资源均免费提供! 一. 创建web项目(eclipse) File-->n ...
- A股ROE连续3年超过15%的股票排名
R连续3年,12个季度的滚动ROE,都超过15%的股票排名,个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多ROE连续3年超过15%的股 ...
- [Tensorflow] **Android Meets TensorFlow
TensorFlow Dev Summit 2017 From: Android Meets TensorFlow: How to Accelerate Your App with AI (Googl ...
- WebApi中的Session与Token间的处理对接
首先,说起来创建session,一般会针对注册登录或者授权等情况: session 从字面上讲,就是会话.这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征(长 ...
- 使用 JdbcTemplate 查询数据时报错:列名无效(已解决)
又犯了一个错误. 争取没有下次了. 就算再犯,也要知道去哪找答案. 所以,记录一下,以示警戒. 报错 使用 JdbcTemplate 查询数据时,出现异常: PreparedStatementCall ...