一、基本选择器

  标签选择器:  $('button')
  ID选择器:  $('#id1')
  类选择器:  $('.class1')
  多重选择器:  $('#id1,.class1,button')
  全体选择器:  $('*') 

  基本选择器完全根据 CSS 选择器的规范而来,对于了解 CSS 的用户非常容易掌握。

二、层次选择器

  子选择器:  $('parent > child')        
  后代选择器:  $('ancester descendant')
  单一兄弟选择器:  $('prev + next')
  所有兄弟选择器:  $('prev ~ siblings')

  子选择器和后代选择器的区别:子选择器是后代选择器的子集,前者只筛选出符合条件的直接子元素,后者筛选出符合条件的所有子孙元素。
  单一兄弟选择器与所有兄弟选择器类似,前者只筛选出符合条件的下一个同辈元素,后者筛选出符合条件的后面的所有的同辈元素。

  简单例子如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
$("#btn1").click(function(){
$('body > div').each(function(index, element) {
alert($(this).html());
});
});
$("#btn2").click(function(){
$('body div').each(function(index, element) {
alert($(this).html());
});
});
$("#btn3").click(function(){
$('#btn1 + button').each(function(index, element) {
alert($(this).html());
});
});
$("#btn4").click(function(){
$('#btn1 ~ button').each(function(index, element) {
alert($(this).html());
});
});
});
</script>
</head>
<body>
<button id='btn1'>click1</button>
<button id='btn2'>click2</button>
<button id='btn3'>click3</button>
<button id='btn4'>click4</button>
<div>
<div id='div1'>div1</div>
<div id='div2'>div2</div>
</div>
</body>
</html>

三、属性选择器

  属性选择器可以筛选出包含特定属性的元素,或者根据属性的值的格式来筛选出元素。

  属性包含:        [attr]
  属性值为指定字符串:    [attr = "value"]
  属性值不为指定字符串:    [attr != "value"]
  属性值以指定字符串开始:    [attr ^= "value"]
  属性值以指定字符串结束:    [attr $= "value"]
  属性值包含指定字符串:    [attr *= "value"]
  多属性筛选:        [attr1 *= "value1"][attr2 = "value2"]

  其中,[name != "value"] 的实现效率较低,可以使用 :not([attr = 'value']) 的形式。

  简单例子如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
$("#btn1").click(function(){
$('[id]').each(function(index, element) {
alert($(this).html());
});
});
$("#btn2").click(function(){
$('button[id]').each(function(index, element) {
alert($(this).html());
});
});
$("#btn3").click(function(){
$('[id $= "1"]').each(function(index, element) {
alert($(this).html());
});
});
$("#btn4").click(function(){
$('button[id $= "1"]').each(function(index, element) {
alert($(this).html());
});
});
$("#btn5").click(function(){
$('button[id][name]').each(function(index, element) {
alert($(this).html());
});
});
});
</script>
</head>
<body>
<button id='btn1'>click1</button>
<button id='btn2'>click2</button>
<button id='btn3'>click3</button>
<button id='btn4'>click4</button>
<button id='btn5' name='name5'>click5</button>
<div>
<div id='div1'>div1</div>
<div id='div2'>div2</div>
</div>
</body>
</html>

四、基本过滤器

  有些过滤器的实现并不高效,原因参见官网,对于这部分过滤器,建议使用 .filter(selector) 来调用,如 $('div').filter(':hidden') ,后面所有的这类过滤器都以红色特殊标出。

  :animated        当前执行动画的元素
  :eq(index)     取出指定索引的元素(jQuery 对象是集合,索引从0开始)
  :gt(index)      取出索引大于指定值的元素
  :lt(index)        取出索引小于指定值的元素
  :first       取出第一个元素,即索引为0的元素
  :last      取出最后一个元素,即索引为 size()-1 的元素
  :even      取出索引为偶数的元素
  :odd      取出索引为奇数的元素
  :header     取出所有标题元素,如 h1,h2,h3 等
  :root      取出根元素
  :not(selector)  取出所有不匹配指定过滤器的元素 
  :focus          当前得到焦点的元素

五、子元素过滤器

  :first-child        是其父元素的第一个子元素
  :last-child        是其父元素的最后一个元素
  :first-of-type        是同辈同类元素中的第一个元素
  :last-of-type        是同辈同类元素中的最后一个元素
  :only-child        是其父元素的唯一子元素
  :only-of-type      在同辈元素中,没有同类元素的元素,即此元素是同辈元素中唯一的该类型元素
  :nth-child(index)    其父元素的第 index 元素,该 index 从 1 开始
  :nth-last-child(index)    其父元素的倒数第 index 元素,该 index 从 1 开始
  :nth-of-type(index)      是同辈的同类元素中的第 index 元素,该 index 从 1 开始
  :nth-last-of-type(index)    是同辈的同类元素中倒数第 index 元素,该 index 从 1 开始

六、内容过滤器

  :contains(text)      包含指定字符串的元素
  :empty          没有子元素的元素
  :has(selector)       包含至少一个指定的选择器匹配的元素
  :parent          包含至少一个子节点的(一个元素或文本)元素

七、表单过滤器

  :input
  :text
  :password
  :button
  :reset
  :submit
  :radio
  :checkbox
  :checked
  :selected
  :file
  :image
  :focus
  :enabled
  :disabled

八、可见性过滤器

  :hidden    当前隐藏的元素
  :visible    当前显示的元素

jQuery 学习之路(2):选择器与过滤器的更多相关文章

  1. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  2. jquery学习笔记(一):选择器

    内容来自[汇智网]jquery学习课程 1.1 基础选择器 选择器 功能 返回值 #id 根据给定的id匹配一个元素 单个元素 element 根据给定的元素名匹配所有元素 元素集合 .class 根 ...

  3. jQuery学习之旅 Item1 选择器【一】

    点击"名称"会跳转到此方法的jQuery官方说明文档. 1. 基础选择器 Basics 名称 说明 举例 #id 根据元素Id选择 $("divId") 选择I ...

  4. jQuery学习之路(7)- 用原生JavaScript实现jQuery的某些简单功能

    ▓▓▓▓▓▓ 大致介绍 学习了妙味,用原生的JavaScript实现jQuery中的某些部分功能 定义自己的函数库lQuery ▓▓▓▓▓▓ $()选择器的实现 jQuery是面向对象的,所以自己编写 ...

  5. jQuery 学习之路(1):引子

    一.主流 javascript 库 除 jQuery 外,还有 Prototype.Dojo.YUI.ExtJS.MooTools ,其中 Prototype 较老,结构设计较为松散,ExtJS 界面 ...

  6. jquery学习(2)--选择器

    jquery-李炎恢学习视频学习笔记.自己手写. 简单的选择器    css 写 法: #box{ color:#f00;}    //id选择器    jquery获取:$('#box').css( ...

  7. jQuery学习之旅 Item2 选择器【二】

    这里接着上一个Item1 把jQuery的选择器讲完.主要有:属性过滤器和子元素过滤器 点击"名称"会跳转到此方法的jQuery官方说明文档. 5. 属性过滤器 Attribute ...

  8. jQuery学习之路(8)- 表单验证插件-Validation

    ▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...

  9. jQuery学习之路(2)-DOM操作

    ▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...

随机推荐

  1. 【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS

    2400: Spoj 839 Optimal Marks Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 567  Solved: 202[Submit ...

  2. Matlab中fsolve传递系数变量

    比如AX= b,求解x,但是要找不同b下的x,100个b. fsolve(‘fun,[X0,b])这样是不行的,因为这样的话b也当成了变量,也会变. 两种方法 1.全局变量 global b;多个的话 ...

  3. JSR303注解

    Annotation 属于Bean Validation 规范 应用位置 作用 对Hibernate Core中的元数据的影响 @AssertFalse yes field/property 检查被标 ...

  4. GitHub Pages和每个项目绑定自定义域名(支持多个和顶级域名)

    假设我购买的域名为www.easonjim.com,想把www.easonjim.com和easonjim.com的域名跳转到下面的网址easonjim.github.io. 而我在github上的账 ...

  5. Python编码格式的指定方式

    参考自: http://python.jobbole.com/85852/, 原文探究的更深,有兴趣的可以去看看. 简介来讲就是使用一种特殊的注释来声明编码格式,如何判断这种格式也用了很简单粗暴有效的 ...

  6. Java中StringBuilder的清空方法比较

    StringBuilder 没有提供clear或empty方法.清空有3种方法:1)使用delete2)新生成一个,旧的由系统自动回收3)使用setLength 将三种方法循环1000万次,代码: p ...

  7. linux下git的简单运用

    linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...

  8. python模块app登陆认证(M2Crypto数字证书加密)

    需求: 1.通过数字证书,非对称加密方式传送对称秘钥给服务端 2.用户名.密码使用对称秘钥加密,发送服务端验证 3.传送数据使用字节流方式 实现思路: 1.了解python的struct模块,用于字节 ...

  9. MySQL中的外键是什么、有什么作用

    本文参加博文大赛,如果您满意的话麻烦点击这里给我投票原,查看原文点击这里.最近自学数据库MySQL,然后有个疑问,一直不得其解,查询了相关资料,最后还是没有解决. 我的疑问是 "使用外键约束 ...

  10. WinForm------SplitContainerControl的窗体调用控件方法

    Frm_Books窗体(窗体里面有个按钮跳转Frm_Book_Select窗体) private void Add_Book_ItemClick(object sender, DevExpress.X ...