jQuery in action 3rd - Selecting elements
jQuery(selector) / $(selector)
selector 选择器有多种形式,下面是 #ID,.class,element

jQuery 支持的 CSS 层级关系选择器

jQuery 支持的 CSS 属性选择器

jQuery 的过滤器 filter
过滤器的写法以冒号 “:filter” 开头,用于过滤 $() 返回对象中的数据,以达到精确查找的目的。
1)位置过滤器

注意,n(索引号) 从 0 开始,与 CSS 中(索引号从 1 开始)的功能不一致。
比如 “:even” 过滤器,认为第一个匹配的 DOM 元素的索引号为 0 ,而 CSS 中的 "even" 认为第一个匹配的 DOM 元素
索引号为 1。所以,在给 table 行 tr 设置交替背景颜色时要小心。
注意,可以给 :eq(n) ,:gt(n),:lt(n),的 n 传递一个负数,表示从最后一个元素开始,进行倒序匹配。
2)child filters

注意,:nth-child() 与 :eq() 不同,经常容易混淆。
使用 :nth-child() 匹配查找时,不管上下文中包含的子元素类型是啥,都要计算,都占一个索引号位置。
使用 :eq() 匹配查找时,不管上下文中 selector 类型元素的前面和后面有多少其他类型的兄弟元素,它都一概忽略,
只计算 selector 类型元素的索引号。
再注意, :nth-child() 是按照 CSS 规范实现的,所以它的索引号是从 1 开始的,而不是 0
3)Form filter
一般情况下,可以写成 $('input[type="checkbox"][checked]'),
CSS 提供了一些伪类,那么可以写成 $('input[type="checkbox"]:checked'),
jQuery 提供了更为方便的一些自定义过滤器,那么可以写成 $('input:checkbox:checked')。

可以组合 CSS 过滤器以及 jQuery 自定义过滤器,例如: $('input:checkbox:checked:enabled');
4)content filter

5)其他过滤器

示例:$('input:not(:checkbox)')、$(':not(img[src*="dog"])')、$('em:lang(zh-CN)')
提示:jQuery 3 修改了 :visible 和 :hidden 的意思,
:visible,匹配任何 layout boxes,即使它们的高度和宽度为0。比如 br 元素以及没有内容的 inline 元素。
6)创建自定义过滤器
$.expr[':'].pointsHigherThan = $.expr.createPseudo(function(filterParam) {
var points = parseInt(filterParam, 10);
return function(element, context, isXml) {
return element.getAttribute('data-points') > points;
}
}
分为三个步骤:
第一步,给自定义过滤器起一个名字,比如 “pointsHigherThan”
第二步,使用 createPseudo(filterParam) 函数创建过滤器对应的匿名函数,filterParam 参数的名字可随便起,
这个参数是一个传给过滤器函数的可选参数。类似于传给过滤器 :eq(n) 的参数 n。
第三步,在过滤器函数中再返回另外一个匿名函数,在这个函数内部编写过滤逻辑代码,最后返回 boolean 值表示是否匹配?
jQuery 传递给此匿名函数三个参数,
element 参数,是一个 DOMElement 元素,一次传递一个。
context 参数,匹配元素的上下文参数
isXML 参数,确定当前操作是在 XML 文档中吗?
示例如下:$('.levels li:pointsHeighThan(20)');
jQuery in action 3rd - Selecting elements的更多相关文章
- jQuery in action 3rd - Working with properties, attributes, and data
properties properties 是 JavaScript 对象内在的属性,可以进行动态创建,修改等操作. attributes 指的是 DOM 元素标记出来的属性,不是实例对象的属性. 例 ...
- jQuery in action 3rd - Operating on a jQuery collection
1.创建新 DOM 元素 $('<div>Hello</div>'); $('<img>', { src: 'images/little.bear.png', al ...
- jQuery in action 3rd - Introducing jQuery
2014 年 10 月, jQuery Foundation 的总裁 Dave Methvin 发布了一篇博客(http://blog.jquery.com/2014/10/29/jquery-3-0 ...
- JQuery IN ACTION读书笔记之一: JQuery选择器
本章关注两个通过$()使用的常用功能: 通过选择器选择DOM元素,创建新DOM元素. 2.1 选择操作元素 JQuery采用了CSS的语法,而CSS的语法你可能已经很熟悉了.当然,JQuery也做了扩 ...
- jQuery 实战读书笔记之第六章:事件本质
理解浏览器事件模型 understandEventModel.html 代码: <!DOCTYPE HTML> <html> <head> <title> ...
- jQuery 实战读书笔记之第五章:使用 jQuery 操作页面
html 如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &l ...
- 转:VS2008 vs2010中JQUERY智能提醒
第一步: 安装VS 2008 SP1 VS 2008 SP1 在Visual Studio中加了更丰富的JavaScript intellisense支持,对很大部分的JavaScript库加了代码完 ...
- (2)入门指南——(7)添加jquery代码(Adding our jQuery code)
Our custom code will go in the second, currently empty, JavaScript file which we included from the H ...
- jQuery初探 jQuery选取和操纵元素的特点
jQuery初探 jQuery选取和操纵元素的特点 JavaScript选取元素 先来看看不用jQuery的时候我们是怎么处理元素选取的. JavaScript选取元素的时候,可以根据id获取元素,当 ...
随机推荐
- nodejs & nodemailer
nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...
- FizzlerEx —— 另一个HtmlAgilityPack的CSS选择器扩展,
之前我介绍过HtmlAgilityPack的CSS选择器扩展——ScrapySharp,它可以非常方便的实现通过CSS选择器表达式来查询HtmlNode.今天在使用的过程中,发现它不支持nth-chi ...
- MySQL的表的优化和列类型的选择
列选择原则: 1:字段类型优先级 整型 > date,time > enum,char>varchar > blob 列的特点分析: 整型: 定长,没有国家/地区之分,没有 ...
- arpg网页游戏之地图(二)
[转]http://www.cnblogs.com/BlueWoods/p/4684557.html 这一节说说视窗,这个视窗,也就是游戏的视角.现在的网页游戏分为2D游戏,2.5D游戏和3D游戏,2 ...
- 理解angularjs的作用域
<!doctype html> <html ng-app="myApp"> <head> <script src="http:/ ...
- S5PV210的LCD控制器详解
1.FIMD结构框图 (1)Samsung的s5pv210的LCD控制器叫做FIMD(也叫显示控制器).Display controller(显示控制器)包括用于将图像数据从相机接口控制器的本 地总线 ...
- 8.springMVC中的RESTful架构风格
RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...
- socket编程相关的结构体和字节序转换、IP、PORT转换函数
注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换. 强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转 ...
- DIOCP之EchoServer分析
constructor TfrmMain.Create(AOwner: TComponent);begin inherited Create(AOwner); sfLogger.setAppender ...
- delphi对象赋值
Delphi的对象之间赋值主要要注意几个方面的问题: 1.对象之间的 :=赋值只是地址赋值,即是将当前对象的地址赋值到变量中,定义的变量可以是不用初始化的,在内存中两个变量指向的是同一地址空间: ...