锋利的jQuery——读书笔记二

jQuery选择器
jQuery的一大优势就是强大的选择器,完全继承了CSS的风格

基本选择器

基本选择器是我们最常用的选择器,通过元素的 idclass类名 来查找DOM元素

  • $(‘test’) 选取 id 为 test 的元素
  • $(“.test”) 选取 class 为 test 的元素- $(“p”) 选取所有 p 元素
  • $(““)* 选取所有元素
  • $(“#test,.test,p”) 返回元素的集合

层次选择器

通过DOM之间的层次关系来获取特定的元素,后代元素、子元素、相邻元素和同辈元素

  • $(“div span”) 返回 div 里的 span 元素,所有后代元素中查找
  • $(“div >span”) 返回 div 里的 span 子元素,直接子元素中查找
  • $(“div +span”) 返回 div 下一个span 同辈元素,可用next方法代替, $("div").next("span");
  • $(“div ~ siblings”) 返回 div 里的所有后代元素,可用nextAll方法代替, $("div").nextAll("span");

过滤选择器

过滤选择器通过特定的过滤规则来筛选所需的DOM元素,过滤的规则与CSS伪类选择器方法相同。熟练的去使用过滤选择器,让我们在代码中避免了重复大量的代码。有很多需要注意的点,多一个空格的区别也是很大的。按照过滤规则分为以下

基本过滤选择器

基本过滤器在我们的运用中也是很广泛的,奇偶数能使我更加方便的去执行隔行操作,按照索引去选择,更加准确的定位,以及动态去对前部分或者后部分的元素执行操作

  • :first 选取第一个元素,$(“div:first”) 第一个div元素- :last选取最后一个元素
  • :not去除匹配元素
  • :even 索引是偶数的,索引从零开始
  • :odd索引是奇数的
  • :eq(index) 索引是index的
  • :gt(index) 索引大于index的
  • :lt(index) 索引小于index的- :header 选取所有的标题元素 h1,h2…
  • :animated 正在执行动画的元素
  • :fcous当前获取焦点的元素

内容过滤选择器

规则主要体现在他所包含的子元素或者文本内容上

  • :contains(text) 选取包含有文本内容 text 的元素
  • :empty选取不包含子元素或者文本元素的空元素
  • :has(selector)选取含有选择器所匹配的元素的元素(双重选择)
  • :parent 选取包含子元素或者文本元素的空元素

可见性过滤

  • :hidden 选取可见 的元素
  • :visable选取不可见的元素注意:选择器 :hidden 不仅仅包括样式属性display:none;,也包括文本隐藏域<input type='hidden'>visibility:hidden 之类的元素

属性过滤器

  • [attribute] 选取带有指定属性的元素
  • [attribute=value] 选取带有指定属性和值的元素
  • [attribute!=value] 选取不带有指定属性和值的元素- [attribute~=value] 选取属性值中包含指定词汇的元素
  • [attribute|=value] 选取带有以指定值开头的属性值的元素,该值必须是整个单词。
  • [attribute^=value] 匹配属性值以指定值开头的每个元素
  • [attribute$=value] 匹配属性值以指定值结尾的每个元素
  • [attribute=value]* 匹配属性值中包含指定值的每个元素####子元素过滤选择器

子元素过滤选择器

子元素过滤选择器的过滤规则相对于其他选择器稍微有点复杂,需要我们争取的去区分父元素和子元素

  • :nth-child(index/even/odd/equation) 选取父元素下的第index个元素或者奇偶元素 (index从1算起),:eq(index)只匹配一个元素,:nth-child可以为每一个父元素匹配元素,index的起始值也不同
  • :first-child 第一个
  • :last-child 最后一个
  • :only-child 唯一一个

表单对象属性过滤选择器

表单对象属性过滤选择器,顾名思义,是对所选择的表单元素进行过滤,在我们平时运用的还是很广泛的,去获取表单中被选中的个数和内容就变得更为方便

  • :enabled 选取所有可用元素
  • :disabled选取不可用的
  • :checked选取被选中的元素(单选框、复选框)
  • :selected选取被选中的元素(下拉框)

表单选择器

  • :input 选 取所有输入框
  • :text选取所有文本框
  • :password选取所有密码框
  • :radio选取所有单选框
  • :checkbox 选取所有复选框
  • :submit选取所有提交按钮
  • :image选取所有图像按钮
  • :reset选取所有重置按钮
  • :button选取所有按钮
  • :file选取所有上传域
  • :hidden选取所有隐藏元素

选择器中的一些注意问题

1.选择器中的特殊符号
·” 、“#”、“(”或“[”,W3C规定,属性值中是不能含有这些特殊字符的,如果实际项目中需要用到,就使用转义字符,转义
2.选择器中的空格
这也是很重要的一点,明明感觉自己写的对,为啥结果却不一样呢,检查一下是不是在不该有空格的地方出现了空格
eg:

var $t_a = $('.test :hidden'); //带空格的
//选取class为test元素里面的隐藏元素

var $t_a = $('.test:hidden'); //不带空格的
//选取class为test元素的隐藏元素
写在后面

这本书,用一章的篇幅去说选择器,这是我们入门jQuery的第一步,这篇文章,选择器是上周看的,这周相当于回顾一下,我并没有去写很多实例,一来是因为觉得有些没必要,二是因为懒~
选择器的目的是为了让我们更加简便的去选取元素,是把选择元素简单化,建议大家在使用的时候也去思考到这一点。
个人来说,这一章对我的收获是,扩展了自己对选择器的认识,避免了重复的操作,以及整个过一遍后,在使用中遇到自己想去选择的元素,能准确的去使用最简便的选择器。

后期的话如果有在选择器上遇到的问题,或者易犯的错误,我会在文章后追加。

    原文作者:小夫特
    原文地址: https://www.jianshu.com/p/ad4015bd6a9f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞