jquery:选择器 过滤器
容易理解错误的地方:
1.假如我们想要让一个表格中第八列的所有单元格,都隐藏起来。我们可能会这么写$("table tr td:eq(8)").css("display","none");但是结果和我们想的不一样,只有第一行,第八列的单元格被隐藏了,而其他的并没有。如果我们要这么写 $("table tr).find("td:eq(8)").css("display","none") 结果就和我们想要的一样了。
原因:alert($("table tr td").length) 结果为50 结果表格是10列5行。
2.
选择器和过滤器配合筛选
演示:找到最后一个tr,然后再找他的第二个子元素,再从第二个子元素中找到他的input子元素
$("tr:last>:nth-child(2)>:input").focus();
简单选择器的开头部分(显式或隐式)是标签类型声明。如果选取的元素和标签名无关,则可以使用通配符 * 来代替。如果选择器没有以标签名或通配符开头,则隐式含有一个通配符。
标签名或通配符制定了备选文档元素的一个初始集。在简单选择器中,标签类型声明之后的部分是由零个或多个过滤器组成。过滤器从左到右应用,和书写顺序一致,其中每一个都会缩小选中元素集。
其中每一个都会缩小选中的元素,这句话,这里我需要进行深入的解释一下,简单选择器,首先,标签名或通配符制定了备选文档元素的一个初始集,然后我们在这个初始集的基础上,用过滤器过滤,一个过滤器过滤完了之后,初始集会变小,接着用下一个过滤,直到最后。假若某一个过滤器一个也没过滤到,那么这个选择器就是选择失败了,什么也没找到。
举例:
<div id="c">
asdfasdf
<div class="n">nnnn</div>
<div class="n">n2n2n2n2n</div>
<div class="t">tttt</div>
<div class="t">t2t2t2t2t</div>
</div>
$(".t:last-child").text("yoyo"); t2t2t2t2t会变成yoyo
$(".n:last-child").text("yoyo");没任何反应。因为.n过滤之后是nnnn和n2n2n2n2n,然后我又用last-child,他的意思是父节点的最后一个子元素,父节
点是id为c的div,他的最后一个子元素是t2t2t2t2t,两个没有交集,自然取不到。虽然我们不会用到先.class后last-child的方式,但是这里举一个这样的例
子。 如果想让div下面的样式为t的最后一个元素 改变 不能用last-child,需要用last,$(".n:last").text("yoyo");
举例:$("[onclick]:button").val("mabo"); 这里面就没有显示的标签名,所以不是以标签名开头,它会有一个隐式的通配符,其中[onclick]和:button都是过滤器 他代表的是选取 带有onclick属性的button按钮,为按钮的value属性值复制“mabo”,$("span.m").html("123"),这个例子里面就有显示的标签名,.m是过滤器。
组合选择器
$("div.t+div.n").html("hahahaha"); div.t是一个简单选择器,div是标签名.t是过滤器 .n也是过滤器 +是组合选择器的一种。
A B 从匹配选择器A的元素的子孙元素中,选取匹配选择器B的文档元素。注意,组合符就是空白符
A>B 从匹配选择器A的元素的子元素中,选取匹配选择器B的文档元素
A+B 从匹配选择器A的元素的下一个兄弟元素(忽略文本节点和注释)中,选取匹配选择器B的文档元素
A~B 从匹配选择器A的元素的后面的兄弟元素中,选取匹配选择器B的文档元素
过滤器列表
#id
.class
[attr] 匹配拥有attr属性(和属性值无关)的所有元素。要是和值有关,请用[attr=val]、[attr!=val][attr^=val][attr$=val][attr*=val] [attr~=val] 举例:$("[onclick]").append("哈哈") 对包含onclick属性的元素append哈哈
:button 匹配<button type="button">和<input type="button">元素 举例:$(":button").val("你妹") 把button的value属性值变成“你妹”
:empty 匹配没有子节点、没有文本内容的元素
:enabled
:first
:last
:first-child
:last-child
:only-child
:nth-child(n) 匹配的元素是其父节点的第n个子元素。n可以是树脂、单词even、单词odd或计算公式。使用nth-child(even)来选取那些在其父节点的子元素中排行第2或第4等序号的元素,nth-child(odd)则是第1、第3等元素。元素序号从0算。
:nth(n) 与eq(n)相同
:even 匹配列表中偶数序号的元素。由于第一个元素的序号为0,因此实际上选中的是第1个、第3个、第5个等元素
:odd
:parent
jquery:选择器 过滤器的更多相关文章
- JQuery选择器&过滤器
JQuery对象: JQuery对象的本质上是DOM数组,它对DOM元素进行了封装 JQuery对象和JavaScript对象可以互转(\$()/$obj()[i]),但是JQuery对象和Javas ...
- jQuery选择器与过滤器(二)
一.jQuery选择器1.基本选择器:所有选择器 *标签选择器 标签名ID选择器 #ID类选择器 .className组合选择器 selector1,selector2 ...
- jQuery选择器和选取方法 http://www.cnblogs.com/MaxIE/p/4078869.html
我们已经使用了带有简单Css选择器的jQuery选取函数:$().现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了. 一.jQuery选择器 在CSS3选择器标淮草案定义 ...
- jQuery-1.9.1源码分析系列(二)jQuery选择器续1
在分析之前说一点题外话. ownerDocument和 documentElement的区别 ownerDocument是Node对象的一个属性,返回的是某个元素的根节点文档对象:即document对 ...
- 二、jquery选择器
在jquery库中,可以通过选择器实现DOM元素快捷选择这一重要的核心功能. 1.选择器的优势 (1)代码更简单 由于在jquery库中,封装了大量可以通过选择器直接调用的方法或函数,使编写代码更加简 ...
- jquery 选择器(name,属性,元素)大全
jQuery 选择器大体上可分为:基本选择器.层次选择器.过滤选择器.表单选择器. 其中过滤选择器可以分为:简单过滤选择器.内容过滤选择器.可见性过滤选择器.属性过滤选择器.子元素过滤选择器.表单对象 ...
- jquery选择器总结 转自(永远的麦子)
jQuery选择器总结 阅读目录 1, 基本选择器? 2, 层次选择器? 3, 过滤选择器? 4, 表单选择器? jQuery选择器共有四大类,分别为基本选择器,层次选择器,过滤选择器和表单选择器.下 ...
- jQuery-认识JQuery,jQuery选择器
认识JQuery: 1.window.onload与$(document).ready()的区别 window.onload $(document).ready() 执行时机 必须等待网页中的所有内容 ...
- jQuery选择器和选取方法
我们已经使用了带有简单Css选择器的jQuery选取函数:$().现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了. 一.jQuery选择器 在CSS3选择器标淮 ...
随机推荐
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student." ,则输出" ...
- java简易DVD影片管理系统—面向对象
public class DvdSet { String name [] =new String[15]; // DVD电影名称 String date [] =new String[15]; //D ...
- Codeforces Round #304 (Div. 2) D 思维/数学/质因子/打表/前缀和/记忆化
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...
- Python之时间:calender模块(日历)
import calendar 1.星期 (1)calendar.day_name 星期的全称 print calendar.day_name for i in calendar.day_name: ...
- css 样式冲突问题
CSS 样式冲突问题 问题: 当文件中样式名称相同时,易出现样式冲突问题,解决办法如下: 解决: 以 layer.js 中弹出层 .layui-layer-page .layui-layer-con ...
- html table 表格
前面的话 在CSS出现之前,table元素常常用来布局.这种做法在HTML4之后不再推荐使用.而现在有些矫枉过正,使用table展示数据都可能会被说不规范.本文将详细介绍HTML表格table tab ...
- 访问外网 ML2 的配置
通过 router 可以实现位于不同 vlan 中的 instance 之间的通信. 接下来要探讨的问题是 instance 如何与外部网络通信. 这里的外部网络是指的租户网络以外的网络. 租户网络是 ...
- BZOJ【1625】宝石手镯
1625: [Usaco2007 Dec]宝石手镯 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1007 Solved: 684[Submit][St ...
- datalist、repearter、gridview显示行号的三种方法 或者是获取datalist行id
原文发布时间为:2009-05-06 -- 来源于本人的百度文章 [由搬家工具导入] 1. if you are using SQL Server, try select identity(int,1 ...
- js5:框架的使用,使框架之间无痕连接
原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <base target="js4" ...