jQuery之过滤选择器
过滤选择器
1.基本选择器
2.内容选择器
3.可见性选择器
4.子元素过滤器
过滤选择器简称:过滤器。它其实也是一种选择器,而这种选择器类似于CSS3(http://t.mb5u.com/css3/)里的伪类,可以让不支持CSS3的
浏览器也能支持。和常规的选择器一样,jQuery为了更方便开发者使用,提供了很多独有的过滤器。
一、基本过滤器
过滤器主要通过特定的过滤规则来筛选所需的DOM元素,和CSS中的伪类的语法类似:使用冒号(:)开头。
过滤器名 | jQuery语法 | 说明 | 返回 |
:first | $('li :first') | 选取第一个元素 | 单个元素 |
:last | $('li :last') | 选取最后一个元素 | 单个元素 |
:not(selecter) | $('li :not(.red)') | 选取class不是red的li元素 | 集合元素 |
:even | $('li :even') | 选择索引(0 开始)是偶数的所有元素 | 集合元素 |
:odd | $('li :odd') | 选择索引(0 开始)是奇数的所有元素 | 集合元素 |
:eq(index) | $('li :eq(2)') | 选择索引(0 开始)等于index的元素 | 单个元素 |
:gt(index) | $('li :gt(2)') | 选择索引(0 开始)大于index的元素 | 集合元素 |
:lt(index) | $('li :lt(2)') | 选择索引(0 开始)小于index的元素 | 集合元素 |
:header | $('li :header') | 选择标题元素,h1~h6 | 集合元素 |
:animated | $('li :animated') | 选择正在执行动画的元素 | 集合元素 |
:focus | $('li :focus') | 选择当前被焦点的元素 | 集合元素 |
jQuery为最常用的过滤器提供了专用的方法,以达到提高性能和效率的作用:
$('li').eq(2).css('background','#ccc'); //元素li的第三个元素,负数从后开始
$('li').first().css('background','#ccc'); //元素li的第一个元素
$('li').last().css('background','#ccc'); //元素li的最后一个元素
$('li').not(.red).css('background','#ccc'); //元素li不含class为red的元素
注意::first、:last和first()、last()这两组过滤器和方法在出现相同元素的时候,first会实现第一个父元素的第一个子元素,last会实现最后一个父元素的最后一个子元素,所以,如果需要明确是哪个父元素,需要指明:
$('#box li:last').css('background','#ccc'); //#box元素的最后一个li
//或
$('#box li').last().css('background','#ccc') //同上
二、内容过滤器
内容过滤器的过滤规则主要是包含的子元素或文本内容上。
过滤器名 | jQuery语法 | 说明 | 返回 |
:contains(text) | $(':contains("ycku.com")') | 选取含有"ycku.com"文本的元素 | 元素集合 |
:empty | $(':empty') | 选取不包含子元素或空文本的元素 | 元素集合 |
:has(selector) | $(':has(.red)') | 选取含有class是red的元素 | 元素集合 |
:parent | $(':parent') | 选取含有子元素或文本的元素 | 元素集合 |
jQuery提供了一个has()方法来提高.has过滤器的性能:
$('ul').has(.red).css('background','#ccc') //选择子元素含有class是red的元素
jQuery提供了一个名称和:parent相似的方法,但这个方法并不是选取含有子元素或文本的元素,而是选取当前元素的父元素,返回是元素集合。
$('li').parent().css('background','#ccc') //选择当前元素的父元素
$('li').parents().css('background','#ccc') //选择当前元素的父元素及祖先元素
$('li').parentsUntil('div').css('background','#ccc') //选择当前元素的父元素及祖先元素,遇到div父元素停止
三、可见性过滤器
可见性过滤器根据元素的可见性和不可见性来选择相应的元素。
过滤器名 | jQuery语法 | 说明 | 返回 |
:hidden | $(':hidden') | 选取所有不可见元素 | 集合元素 |
:visible | $(':visible') | 选取所有可见元素 | 集合元素 |
$('p:hidden').size(); //元素p隐藏的元素
$('p:visible').size(); //元素p显示的元素
注意:hidden过滤器一般包含的内容为:CSS样式为display:none、input表单类型为type="hidden"和visibility:hidden的元素。
四、子元素过滤器
子元素过滤器的过滤规则是通过父元素和子元素的关系来获取相应的元素。
过滤器名 | jQuery语法 | 说明 | 返回 |
:first-child | $('li:first-child') | 获每个父元素的第一个子元素 | 集合元素 |
:last-child | $('li:last-child') | 获取每个父元素的最后一个子元素 | 集合元素 |
:only-child | $('li:only-child') | 获取只有一个子元素的元素 | 集合元素 |
:nth-child(odd/even/eq(index)) | $('li:nth-child(even)') | 获取每个自定义子元素的元素(索引值从 "1" 开始计算) | 集合元素 |
五、其他方法
jQuery在选择器和过滤器上,还提供了一些常用的方法,方便我们开发时灵活使用。
方法名 | jQuery语法 | 说明 | 返回 |
is(s/o/e/f) | $('li').is('.red') | 传递选择器、DOM、jQuery对象 | 集合元素 |
hasClass(class) | $('li').hasClass('red') | 其实就是is("."+class) | 集合元素 |
end() | $('div').find('p').end() | 获取当前元素前一个状态(当前元素的前一个元素) | 集合元素 |
contents() | $('div').contents() | 获取某元素下面所有元素节点,包括文本你节点 | 集合元素 |
$('.red').is('li'); //true,选择器,检测class是否为red
$('li').eq(2).hasClass('red'); //和is一样,只不过只能传递class
转载于:https://www.cnblogs.com/elementplay/p/8306828.html
jQuery之过滤选择器相关推荐
- jq查找字段忽略html标签,jquery内容过滤选择器有哪些?
jQuery内容过滤选择器的过滤规则主要运用在DOM元素所包含的子元素或其文本内容上,主要包括四种过滤方法: :contains(text).:empty .:has(seletor) .:paren ...
- jQuery基本过滤选择器
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" ...
- jquery可见性过滤选择器
jquery可见性过滤选择器 可见性过滤选择器是根据元素的可见性状态来选择相应的元素. 在锋利的jquery一书中的介绍如下:
- jquery属性过滤选择器[attr=value]、[attr!=value]、[attr^=value]、[attr$=value]、[attr*=value]、[attr|=value]
全栈工程师开发手册 (作者:栾鹏) jquery系列教程1-选择器全解 jquery属性过滤选择器 jquery属性过滤选择器,包括[attr].[attr=value].[attr!=value]. ...
- jquery可见性过滤选择器:hidden、:visible
全栈工程师开发手册 (作者:栾鹏) jquery系列教程1-选择器全解 jquery可见性过滤选择器 jquery可见性过滤选择器,包括:hidden.:visible,具体功能如代码中注释. 代码如 ...
- jquery基本过滤选择器:first :last :not(.myclass) :even :odd :eq(1) :gt(5) :lt(1) :header :animated :focus
全栈工程师开发手册 (作者:栾鹏) jquery系列教程1-选择器全解 jquery基本过滤选择器 jquery基本过滤选择器,包括:first.:last.:not(.myclass).:even, ...
- jQuery前端开发学习指南(11)——jQuery属性过滤选择器
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 属性过滤选择器概述 属性过滤选择器用于根据元素的属性来匹配元素. [attribute] 匹配 ...
- jQuery属性过滤选择器
属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素. [attribute] 选取用次属性的元素 [attribute=value] 选取属性值为value的元素 [attribute ...
- jquery基本过滤选择器(jquery筛选选择器)
这些选择器里面除了first和last还有eq方法返回的是元素对象,其余的返回都是元素集合 :gt(index) 用法: $("li:gt(0)") 意思:获取索引大于0,但不包括 ...
最新文章
- js 通过jquery插件获取url参数 其中的一个小问题,或许不算Bug。
- 洛谷 P1939 【模板】矩阵加速(数列)
- 用计算机弹正义之道,正义之道
- 又又叒更新,Win 12要来了?
- mysql basic_MySQL Basic Learning (二)
- 苹果秋季新品发布会终于官宣:然而并不会发布新iPhone?
- 关于单点登录的一些资料(转)
- rinetd 安装、配置方法 通过端口转发来访问内网服务
- RDMA(远程直接数据存取)概述
- 列出一个工作簿中所有已使用的自定义函数
- 设计模式之GOF23状态模式
- 多功能时钟电路的设计框图_OLED显示屏,行驱动电路设计,单片机AT89C51与和显示屏的硬件接线...
- 使用imp导入工具导入dmp文件
- c语言mud游戏制作,MUD游戏制作工具下载
- python毕业设计项目源码选题(14)校园失物招领系统毕业设计毕设作品开题报告开题答辩PPT
- Unity3d+Gameframework:entity实体代码分析,基于StarForce
- iphone4 快捷键整理
- 做直播|流量大时需要CDN加速
- garch dcc用matlab,MRS DCC GARCH 模型的MATLAB 程序修改
- 《程序员的成长课》:少走5年弯路
热门文章
- 树莓派各版本配置对比
- Vmware中mac snow leopard蘋果雪豹系統驅動程式安裝方法
- jest java_✅使用jest进行测试驱动开发
- linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门
- 底部分页栏_2020年执业药师考试教材各科目增加页数!最多203页
- java输入一个数字输出_java 输入一个数字,反转输出这个数字的值(实现方法)
- 交流继电器rc吸收电路_使用固态继电器的注意事项
- ajax使用pur请求怎么传参,数组参数传递给控制器的方式
- python定义一个字典、存储雇员号和姓名_【一点资讯】python后端开发工程师考证试题...
- mysql 只读账号_MySql主从复制,从原理到实践!