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获取元素,当 ...
随机推荐
- 【VB.NET】文本框快捷键支持
我们知道VB.NET中的文本框是不支持Ctrl+A的快捷键的. 如果让它支持呢? Private Sub txtSQL_KeyDown(ByVal sender As Object, ByVal e ...
- python 过滤出某后缀名文件
以从某文件夹过滤出py文件为例: 法1: import glob import os os.chdir(“./”) for file in glob.glob(“*.py”): print file ...
- git学习系列--六分之一
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,可以对任何类型的文件进行版本控制. 细说分布式版本控制系统 在这类系统中,像 Git,Mercurial,Bazaar 以 ...
- Python复习笔记-字典和文件操作
抽时间回顾2年前自己做过的python工具,突然感觉不像自己写的,看来好久没用过python的字典和文件操作了,查询资料和网页,整理如下: 一.字典 键值对的集合(map) 字典是以大括号“{}”包围 ...
- listed
http://sebastianruder.com/optimizing-gradient-descent/ http://www.nag.co.uk/pss/nag-and-algorithmic- ...
- noip2008解题报告
T1.笨小猴 给出一个单词求出现次数最多和最少之差是不是质数. 很水的.统计一下反正就26个字母. T2.火柴棒等式 给出火柴棒数,求形如 a+b=c能拼成的等式个数. 先减去4根(+,=),然后枚举 ...
- java之注解Annotation
元注解:负责注解其他注解,java5提供的4个meta-annotation元注解 @Target 规定注解修饰的范围 ElementType.CONSTRUCTOR:构造器声明 ElementTyp ...
- scrollWidth的巧妙运用
再了无生趣的工作也是能够帮助我们提高的~ 最近工作比较无聊,于是就想到了写一个滚动条插件,在借鉴了mCustomerScrollbar这个组件之后我简单的写了一个类似的,当然,相比于它的2000多行代 ...
- 关于HTML(JSP)页面的缓存设置 -- cache-control
我在项目中遇到这么一个问题,当用户登录了系统后,进入并copy下系统某个页面的link,然后关闭浏览器,重新打开浏览器,把刚才复制好的link paste到浏览器的地址栏去,直接enter,发现浏览器 ...
- 扩展运算是个影藏boss
short a =1; a+=1; //实际上是 a=(short)(a+1); 而 short a=1; a=a+1; //不报错,应为进行算术逻辑运算会默认转为int类型,但是你要把int类型赋值 ...