jQuery的内容过滤选择器学习教程


Posted in Javascript onApril 18, 2016

内容过滤器的过滤规则主要是包含的子元素或文本内容上。
jQuery的内容过滤选择器学习教程

$('div:contains("xxx")').css('background', '#ccc'); //选择元素文本节点含有xxx 文本的元素 
 
$('div:empty').css('background', '#ccc'); //选择空元素 
 
$('ul:has(.red)').css('background', '#ccc'); //选择子元素含有class 是red 的元素 
 
$(':parent').css('background', '#ccc'); //选择非空元素

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内容过滤选择器的过滤规则主要运用在DOM元素所包含的子元素或其文本内容上,主要包括以下四种过滤方法:

为了更好的学习,先写几个DOM元素的HTML结构:

<div>John Resign</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J.Ohn</div>
<div></div>
<p></p>
<div><p>Has p</p></div>

一、内容过滤选择器——:contains(text)
选择器:

E:contains(text)  //E是指DOM元素,:contains(text)包含的文本,text是指定查找的字符串
描述:

选取含有文本内容为“text”的元素

返回值:

集合元素

实例:

<script type="text/javascript">
 $(document).ready(function(){
  $('div:contains(John)').css('background','#f36');
 });
</script>

功能:

改变含有文本为“John”的div元素的背景色

效果:

jQuery的内容过滤选择器学习教程

回到前面的HTML结构中我们可以看出其中有两个div元素中包含了"John"文本,因为我们这里主要是改变了包含文本“John”的div的背景色,因此大家在效果中可以看出我们其中第一个和第三个div的背景色变成了"#f36",为了更能体会从中的变化,大家可以通过Firefox中的Firebug工具看出HTML的变化:

jQuery的内容过滤选择器学习教程

二、内容过滤选择器——:empty

选择器:

E:empty //其中E为DOM元素,:empty是指DOM元素中不包含任何子元素或文本 
描述:

选取不含任何子元素或文本的空元素

返回值:

集合元素

实例:

<script type="text/javascript">
 $(document).ready(function(){
  $('div:empty').css('background','#f36');
 });
</script>

功能:

改变不含子元素(包括不含文本元素)的div的背景色,换句话说,就是改变不包含任何东西的div的背景色

效果:

jQuery的内容过滤选择器学习教程

虽然我们前面的html中所有元素中不包含子元素,但有一些包含了文本元素,只有一个div和一个p元素具没有子元素也没有文本内容。加上我们这个例子中,我们只对不包含子元素和文本内容的div进行了改变背景色的设置,所以我们的效果中只有div加上了“#f36”的背景色,同样我们来看看HTML的变化吧:

jQuery的内容过滤选择器学习教程

三、内容过滤选择器——:has(selector)

选择器:

E:has(selector)  //其中E为有效果DOM元素标签,:has(selector)含有一个选择器,selector用于筛选的选择器

描述:

选取含有选择器所匹配的元素的元素

返回值:

集合元素

实例:

<script type="text/javascript">
 $(document).ready(function(){
  $('div:has(p)').css('background','#f36');
 });
</script>

功能:
改变含有子元素P的div元素的背景色
效果:

jQuery的内容过滤选择器学习教程

在我们这个实例中,只有一个div中包含了子元素P,所以包含了符合这个要求的div元素其背景色被设置为“#f36”,改变后的HTML:

jQuery的内容过滤选择器学习教程

四、内容过滤选择器——:parent

选择器:

E:parent  //E为有效的DOM元素标签,:parent含有子元素或文本内容。

描述:

选取含有子元素或者文本的元素标签

返回值:

集合元素

实例:

<script type="text/javascript">
 $(document).ready(function(){
  $('div:parent').css('background','#f36');
 });
</script> 

功能:
改变含有子元素或文本内容的div的背景色。换句话说只在div包含了任何一个子元素或者任何内容,其背景色都将会改变。
效果:

jQuery的内容过滤选择器学习教程

本例子,只有一个div和一个p元素中不包含任何子元素和文本内容,因为我们这里是对div进行设置,所以效果中显示,除了这两个不含有子元素和任何内容的div的背景色都变成了“#f36”,变化后的HTML:

jQuery的内容过滤选择器学习教程

有关于jQuery选择器中的内容过滤选择器,就简单的说到这里,大家如果想更深的体会其具体的用法,可以在本地多做几个实例练习。如果大家对jQuery选择器的其他选择器用法感兴趣的话,可以在本站中了解其他的选择器的具体功能和用法,同时也可以随时观注本站的内容更新。

Javascript 相关文章推荐
Riot.js 快速的JavaScript单元测试框架
Nov 09 Javascript
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
Mar 26 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
Vue+Express实现登录注销功能的实例代码
May 05 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
May 20 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 #Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
Apr 18 #Javascript
jQuery 如何给Carousel插件添加新的功能
Apr 18 #Javascript
AngularJS入门教程之AngularJS模型
Apr 18 #Javascript
AngularJS入门教程之AngularJS指令
Apr 18 #Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 #Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 #Javascript
You might like
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
机电一体化求职信
2014/03/10 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
门市房租房协议书
2014/12/04 职场文书
全陪导游词开场白
2015/05/29 职场文书
酒会开场白大全
2015/06/01 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏
使用Python开发冰球小游戏
2022/04/30 Python