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 相关文章推荐
Javascript的一种模块模式
Mar 22 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
Sep 01 Javascript
ES6学习教程之块级作用域详解
Oct 09 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
Vue实现移动端左右滑动效果的方法
Nov 27 Javascript
详解小程序input框失焦事件在提交事件前的处理
May 05 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
PHP错误机制知识汇总
2016/03/24 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Django框架模板的使用方法示例
2019/05/25 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
大学在校生求职信范文
2013/11/21 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python