jQuery 选择器
jQuery网页脚本语言核心之一
概述:
1. 选择器是jQuery的基础
2. 对事件处理,遍历DOM和Ajax操作都依赖于选择器
3. 可简化代码
什么是jQuery选择器?
层叠样式表
良好地继承了css选择器语法,还继承了其获取页面元素便捷高效的特点
于css不同,jQuery选择器获取元素后,为该元素添加的是行为
有良好的兼容性
优势
1. 简洁的写法
(1) $(选择)
2. 完善的处理机制
(1) 简洁,避免某些错误
类型:
可通过css选择器和过滤选择器两种方式选择元素,每种又有不同的方法来获取元素
1. 通过css选择器选取元素
(1) 基本选择器
(2) 层次选择器
(3) 属性选择器
2. 通过 过滤选择呢亲选择元素
(1) 基本过滤选择器
(2) 可见性过滤选择器
详解:
通过css选择器选取元素
jQuery支持大多数css选择器
最常用的有:基本选择器,层次选择器和属性选择器
在jQuery中它们构成的规则于css选择器完全相同
1. 基本选择器
1. 继承了css选择器的语法和功能
2. 主要由元素标签名,class,id和多个选择器组成
3. 可以实现大多数页面元素的查找
4. 主要包括:
(1) 标签选择器
(2) 类选择器
(3) Id选择器
(4) 并集选择器
(5) 全局选择器
补充:jQuery中还有交集选择器:
语法:$(AB)
一个元素,必须保证AB两个属性同时具备(与并集选择器正好相反)
2. 层次选择器
1. 通过DOM之间的层次关系来获取元素
2. jQuery有四种常用的层次选择器:
(1) 后代选择器
(2) 子选择器
(3) 相邻选择器
(4) 同辈选择器
层级选择器之间的相似与不同点: 1)层级选择器都有一个参考节点 2)后代选择器包含子选择器的选择的内容 3)一般兄弟选择器包含相邻兄弟选择的内容 4)相邻兄弟选择器和一般兄弟选择器所选择到的元素,必须在同一个父元素下.
在层次选择呢亲中,后代选择器和子选择器较为常用,而相邻元素选择器和同辈元素选择器在jQuery中可以用更加简单的方法代替:
(1)使用next()房代替prev-next(相邻元素选择器)
(2)使用nextAll()方法代替prev`siblings(同辈元素选择器)
3. 属性选择器
属性选择器:语法标识:([])
什么是属性选择器?
1. 顾名思义,属性选择器就是通过HTML元素的属性选择元素的选择器
2. 与css中的属性选择器语法构成完全一致
条件属性选择器
条件属性选择器共包括6种,其中[attribute!=value]选择器是jQuery自己拓展的选择器
[attribute!=value]
[attribute!=value]选择器选择属性值不等于value的元素,返回集合元素
[注意]class="test test1"的元素也符合$('[class!="test"]')的情况,因为属性选择器的严格匹配机制
[attribute^=value]
[attribute^=value]选择器选择属性值以value开始的元素,返回集合元素
[attribute$=value]
[attribute$=value]选择器选择属性值以value结束的元素,返回集合元素
[attribute*=value]
[attribute*=value]选择器选择属性值包含value的元素,返回集合元素
[attribute|=value]
[attribute|=value]选择器选择属性值等于value或以value-开头的元素,返回集合元素
[attribute~=value]
[attribute~=value]选择器选择属性值用空格分隔的值中包含value的元素,返回集合元素
[注意]$('[class~="test"]')选择器包含class="test"的元素的情况
通过条件过滤选取元素
过滤:把不要的滤掉,留下需要的
语法标识: (:)
主要通过特定的过滤规则来筛选出所有的DOM元素
同样:过滤规则与css中伪类语法相同,即选择器都以一个冒号(:)开头。冒号前是需要过滤的元素
栗子:
(1)a:hover 表示当鼠标指针移过<a>元素时
(2)Tr:visited 表示当鼠标指针访问过<tr> 元素后
经典栗子:
实现列表隔行变色
注意:奇偶过滤选择器 从0开始
1. 基本过滤选择器
注:$(“:header”) 选取的时所有h1`h6的标签
让文本框获取焦点:$(“input”).focus();
过滤选择器是通过元素所处的位置来获取元素的
2. 可见性过滤选择器
通过元素的显示状态,即元素显示或隐藏来选取元素
:visible:控制眼睛能看到
:hidden:控制本有但隐藏的元素
$(“:hiddden”).show()可以拿出不可见的代码(比如js,jQuery)
Css:type=”hidden” 隐藏域
在可见性选择器中需要注意的是,选择器 :hidden获取的元素不仅包括样式属性display为“none”的元素,还包括文本隐藏域和visibility:hidden之类的元素
3. 补充
表格样式:将相邻边线折成一个,并且填充表格内的空格
jQuery选择器注意事项
1. 选择器中含有特殊符号的注意事项
W3C 规范中,规定属性值中不能含有某些特殊字符,但在实际开发过程中,可能会遇到表达中含有'# 和“.”等特殊字符的情况,如果按照普通的方式去处理就会出错。解决此类错误的方法是使用转义符转义。
HM 代码如下:
<div id="id#a">aa</div>
<div id="id [2] ">cc</div>
按照普通的方式来获取,例如:
$("#id#a") ;
$("#id[2]");
以上代码不能正确获取到元素,正确的写法如下。
$("#id\#a") ;
$("#id\[2\]");
2. 选择器中含有空格的注意事项
选择器中的空格也是不容忽视的,多一个空格或少一个空格,可能会得到截然不同的长。
HTML 代码如下。
<div class="test">
<div style="display:none;">aa</div>
<div style="display:none; ">bb</div>
<div style="display:none;">cc</div>
<div class="test" style="display:none;">dd</div>
</div>
<div class="test" style="display:none;">ee</div>
<div class="test" style="display:none;">ff</div>
使用如下jQuery 选择器分别来获取它们。
//带空格的jQuery选择器
var $t a= $(".test :hidden") ;
//不带空格的jQuery选择器
var $t b= $ (".test:hidden") ;
var len a = $t_a.length;
var len_b= $t_b.length;
//输出4
alert("$('.test :hidden') = "+len_a) ;
//输出3
alert ("$ ('.test:hidden')= "+1en_b) ;
之所以会出现不同的结果,是因为后代选择器与过滤选择器存在不同。
//带空格的jQuery 选择器
var $t a= $ (".test :hidden") ;
以上代码选取的是class 为“test”的元素内部的隐藏元素。
而代码:
/1不带空格的jQuery选择器
var $t b= $(".test:hidden") ;
选取的是隐藏的class 为“test" 的元素。
最后:
(C) 房上的猫 。 保留所有权利。 https://www.cnblogs.com/lsy131479/
- Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
- 调整渐变下降的学习率
- 多线程之传统多线程
- ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
- Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
- 云原生应用的12要素
- Universal-Image-Loader源码分析,及常用的缓存策略
- ios textView跟随键盘的移动
- Android:屏保软件的开发
- CoordinatorLayout
- 从零开始的Spring Security Oauth2(二)
- 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
- demo3同通讯录展示的方式分组排序
- Android手势研究(textview及listview对比验证)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 机器学习之决策树三-CART原理与代码实现
- Vue Router路径切换过渡动画
- 听说Mysql你很豪横?-------------深入解析mysql数据库中的索引!
- 听说Mysql你很豪横?-------------深入解析mysql数据库中的事务!
- Struts2笔记
- Vue Router实现路由嵌套单页面展示
- 排障集锦:九九八十一难之第九难!mysql备份恢复路上的小插曲
- jQuery限制复选框checkbox的选中次数
- jQuery点击切换增加和删除class类
- Vue使用props和emit父子组件通信
- 听说Mysql你很豪横?-------------呕心沥血深入解析mysql备份与恢复!!!
- 排障集锦:九九八十一难之第十难!mysq备份恢复,Could not read entry at offset *: Error in log format or read error.
- Vue使用ref父子组件通信
- 听说Mysql你很豪横?-------------MySQL5.7主从同步
- 听说Mysql你很豪横?-------------MySQL5.7主从复制!读写分离!