JQUERY-定义-查找
正课:
1. 什么是jQuery
2. 如何使用jQuery
3. 查找
1. 什么是jQuery
第三方开发的 执行DOM操作的 极简化的 函数库
第三方: 下载
执行DOM操作: 学习jQuery,还是在学DOM
极简化: jQuery是DOM操作的终极简化: 4个方面:
1. 增删改查
2. 事件绑定
3. 动画
4. Ajax
函数库: jQuery中一切都是函数
为什么: 2个原因:
1. 终极简化
2. 解决了大部分浏览器兼容性问题:
凡是jQuery让用的,都没有兼容性问题
如果不兼容,jQuery在底层用程序模拟实现
2. 如何使用:
3步:
1. 上官网看是什么:
2. 看快速入门:
3. 下载手册,备查:
下载: 版本:
1.x 兼容旧浏览器
未压缩: jquery-1.11.3.js
具有: 完备的注释,代码格式和见名知意的变量名
可读性好,体积大——开发和学习阶段使用
压缩: jquery-1.11.3.min.js
移除所有注释, 清除所有空字符格式,极简化变量名
体积小,可读性差——生产环境
2.x 不再兼容旧浏览器
3.x 也不兼容旧浏览器,还增加了新功能
1. 所有代码运行在严格模式下
2. 支持for...of,代替原有each()
3. 新动画API: requestAnimationFrame()
4. 支持Promise
引入: 2种:
1. 将js文件下载的项目本地
2. 引入CDN网络中的js文件
CDN网络: 内容分发网络
可根据客户端据不同服务器的网络状况,自动选择最优的服务器下载资源
原理:
引入jquery.js,其实是在全局创建了一种新类型: 2部分
1. 构造函数: 创建jQuery类型的子对象
2. 原型对象: 保存所有jQuery类型的子对象共有API
创建jQuery类型的子对象:
什么是jQuery类型的子对象: 专门封装一个或多个DOM元素,并提供操作DOM元素的简化版API
本质是一个类数组对象。
为什么: 普通DOM元素不是jQuery类型,不能用简化版API
只有将找到的DOM元素,放入jQuery对象中,才能使用简化版API
何时: 只要想使用jQuery的简化版API,都要先创建jQuery对象
如何: 2种:
1. 用选择器查找DOM元素,并创建jQuery对象:
var $elems=new jQuery("selector")
先找到符合selector要求的DOM元素,再创建一个jQuery类型的子对象,保存找到的DOM元素
简化: var jQuery=function("selector"){//工厂函数
return new 构造函数("selector")
}// jQuery("selector") 等效于 new 构造函数()
更简化: window.jQuery = window.$ = jQuery;
//调用$() 等效于调用jQuery()
对原型对象的简化: jQuery.fn = jQuery.prototype = {
jQuery.fn也是jQuery类型的原型对象的别名
2. 直接将获得的DOM元素封装进jQuery对象:
var $elem=$(dom元素对象);
3. 查找:
1. 按选择器查找:
jQuery支持所有CSS选择器,并扩展了部分自有的选择器
基本选择器: 5个 同CSS
#id element .class * selector1,selector2,...
层级选择器: 4个 同CSS
parent child parent>sub prev+next prev~nextsiblings
子元素过滤: 4个 同CSS
特点: 在各自父元素内分别编号,从1开始
:first-child :last-child :nth-child(n) :only-child
基本过滤(位置过滤): 7个 jQuery中新增
特点: 先取出所有符合条件的元素放入一个集合中统一编号。编号从0开始
:first/last :even/odd :eq/gt/lt(i)
属性过滤: 同CSS
[属性名]
[属性名=值]
[属性名^=值]
[属性名$=值]
[属性名*=值]
[属性名!=值]
input.txt[title=用户名]
何时:代替class选取多个元素,添加行为
可见性过滤: 2个:
:visible :hidden(display:none input type="hidden")
内容过滤: 2组:
1. 用子元素或内容的特征判断父元素:
1. 以内容文本作为特征: :contains(text)
2. 以子元素特征: :has(选择器)
2. 以是否有子元素或内容为条件:
:parent 非空
:emty 空
表单元素过滤:
:input 选择所有表单元素(input select textarea button)
每种type都有专门的选择器:
:text :password :radio :checkbox :file :submit...
状态过滤: :enabled :disabled :checked :selected
2. 按节点间关系查找:
2大类:
1. 父子:
$elem.parent() 父元素
$parent.children() 直接子元素
$parent.children().first()
$parent.children().last()
2. 兄弟:
$elem.next()
$elem.prev()
$elem.is("selector") 判断$elem是否符合selector选择器的要求
$elem.show()/hide() 代替display="block"/"none"
$elem.css("CSS属性名","属性值") style.css属性名=值
$elem.html("内容") innerHTML="内容"
jQuery API三大规律:
1. 自带遍历: 对整个jQuery对象调用API等效于对其中每个DOM元素都调用一次API
2. 一个函数两用: 给新值,就修改。没给新值,就返回旧值
3. 返回当前正在操作的jQuery对象本身
JQUERY-定义-查找的更多相关文章
- jQuery的查找
children([expr])概述 :取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合.可以通过可选的表达式来过滤所匹配的子元素.注意:parents()将查找所有祖辈元素,而child ...
- jquery zTree 查找所有的叶子节点
jquery zTree 查找所有的叶子节点 // 保存所有叶子节点 10 为初始化大小,并非数组上限 var arrayObj = new Array([10]); /* treeNode: 根节点 ...
- 利用js和JQuery定义一个导航条菜单
利用js和JQuery定义一个导航条 效果: 一.html代码: <div class="Maintenance"> <div class="Title ...
- 在jQuery定义自己函数
刚才有学习<在jQuery定义自己的扩展方法函数>http://www.cnblogs.com/insus/p/3415312.html .现在想练习一下定义自定义函数.经重构之后,还是发 ...
- JQuery中查找父元素,子元素,追加元素,插入元素和删除元素 及其他常用方法
Jquery之所以强大,和其在获取对象时使用与css选择器兼容的语法有很大关系.而且它还兼容了CSS3的选择器,而且多出了不少. 所以jQuery的选择器也就变得很多很强大.就最基本的有以下四个: $ ...
- js进阶 11-19 jquery如何查找选择器的第一个父亲元素和第一个定位的父元素
js进阶 11-19 jquery如何查找选择器的第一个父亲元素和第一个定位的父元素 一.总结 一句话总结:closest()方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上.of ...
- js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代
js进阶 11-16 jquery如何查找元素的父亲.祖先和子代.后代 一.总结 一句话总结:过滤或者查找的方法里面可以带参数进行进一步的选择. 1.parent()和parents()方法的区别是什 ...
- jQuery元素查找方式
jQuery常用的元素查找方法总结 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到 ...
- jquery元素查找方法集锦
jQuery常用的元素查找方法总结 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到 ...
- jquery元素查找方法
$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div&q ...
随机推荐
- C# 自定义类动态追加属性
利用Dynamic,需要.net4.0以上的支持 var dg = rel.ResultDocuments.FirstOrDefault()["dg"].AsBsonArray.G ...
- linux下误删目录文件后恢复神器extundelete
原文链接:https://blog.51cto.com/wzlinux/2052835 参考:https://blog.csdn.net/cwg_1992/article/details/463100 ...
- python之路——11
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 学习内容 一.装饰器 1.时间模块 time.time time.sleep 2.装饰器 原则---开放封闭 ...
- Linux的命令技巧
一.使用apt-get installl 方法安装的库或者程序一般的路径如下 1.下载的软件存放位置 /var/cache/apt/archives 2.安装后软件默认位置 /usr ...
- Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
VectorDrawable 矢量图 三部曲: Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图 Android 开发 VectorDrawabl ...
- gentoo freemind 安装设置
安装 freemind 之后,感觉菜单上面的字体比较模糊,通过设置 tools --> preference 中的 defaults --> default fonts 里面 的 defa ...
- 反序列化失败Failed to deserialize --- local class incompatible: stream classdesc serialVersionUID
反序列化失败: java.lang.IllegalStateException: Failed to execute CommandLineRunner at org.springframework. ...
- RestExpress response中addHeader 导致stackOverflow
问题描述: 最近在项目使用中要在restExpress的header中增加一个键值对,同事在使用的时候没有对header的value进行非空判断,于是在测试环境测试的时候就出现了一个异常
- EasyARM-iMX283A的U盘使用教程
在编写代码前我们先来EasyARM-iMX283A对U盘使用的操作. 我们先拿一个U盘进行格式化 在U盘中写一些文件保存后,弹出U盘. 将U盘插入EasyARM-iMX283A的开发板. [注意]Ea ...
- 阿里云服务器 CentOS 安装Mysql 5.6
下载:https://dev.mysql.com/downloads/file/?id=471181 第一步: 安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包 [ro ...