jquery选择器,过滤器介绍

  1. 一、JQuery与JavaScript    
  2. 1.JavaScript库    
  3. 使用过JavaScriptDOM的人都应该知道(比如昨天的练习),使用JSDOM进行页面的操作是十分麻烦的。比如获取、修改及添加子节点等这些操作。如果操作一个复杂的页面呢?Ok,JavaScript库因此诞生了。    
  4. 目前比较常见的JavaScript库有:    
  5.   
  6. 2.JQuery简介    
  7. JQuery是继Prototype之后又一个优秀的JavaScript库。    
  8. JQuery理念:write less , do more.    
  9. JQuery优势:轻量级、强大的选择器、出色的 DOM 操作的封装、可靠的事件处理机制、完善的Ajax、出色的浏览器兼容性、链式操作方式……。    
  10.   
  11. 二、JQuery对象与DOM对象    
  12. 1.JQuery对象    
  13. JQuery对象就是使用“$(“DOMObj”)”,将DOM对象包装起来。一般在JQuery对象前面加上“$”这样与DMO对象区分,它已经是一种公认的命名约定。JQuery对象不能调用DOM对象的属性和方法,同样DOM对象也不能调用JQuery对象的属性和方法。    
  14.   
  15. 2.JQuery对象转成DOM对象    
  16. 如果想使用JQuery对象调用DOM对象的方法,怎么办?应该将JQuery对象转换成DOM对象,JQuery对象是一个数组对象,这个很特别。所以只需调用JQueryObj[x]或JQueryObj.get(X);即可转换为DOM对象。    
  17.   
  18. 3.DOM对象转换成JQuery对象    
  19. 使用“$(“DOMObj”)”将DOM对象包装起来就可以了。    
  20.   
  21. 三、JQuery选择器    
  22. 选择器是JQuery的根基,在JQuery 中,对事件处理,遍历DOM和Ajax操作都依赖于选择器。这也是今天我们学习的重点内容。    
  23.   
  24. 1.基本选择器    
  25. 基本选择器是JQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class 和标签名来查找DOM元素。这个非常重要,下面的内容都是以此为基础,逐级提高的。    
  26. 1).“$(“#id”)”,获取id指定的元素,id是全局唯一的,所以它只有一个成员。    
  27. 2).“$(“.class”)”,获取class指定的元素,不同的元素可以具有相同的class属性,所以它可能具有多个成员。    
  28. 3).“$(“element”)”,获取element(元素名,比如div、table等)指定的元素,它可能具有多个成员。    
  29. 4).“$(“*”)”,获取所有元素,相当于document。    
  30. 5).“$(“selector1,selector2,…,selectorN”)”,将每个选择器匹配到的元素合并后一起返回。返回selector1匹配的集合+selector2匹配的集合+…+selectorN匹配的集合。    
  31.   
  32. 2.层次选择器    
  33. 什么是层次?层次就是父子关系、兄弟关系的节点。所以,层次选择器就是用来获取指定元素的父子节点、兄弟节点。    
  34. 1).“$(“ancestor descendant”)”,获取ancestor元素下边的所有元素。    
  35. 2).“$(“parent > child”)”,获取parent元素下边的所有子元素(只包含第一层子元素)。    
  36. 3).“$(“pre + next”)”,获取紧随pre元素的后一个兄弟元素。    
  37. 4).“$(“pre ~ siblings”)”,获取pre元素后边的所有兄弟元素。    
  38.   
  39. 3.过滤选择器    
  40. 过滤?肯定是要添加过滤条件的。通过“:”添加过滤条件,比如“$(“div:first”)”返回div元素集合的第一个div元素,first是过滤条件。    
  41. 按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。    
  42.   
  43. 1). 基本过滤选择器    
  44. a) “:first”,选取第一个元素,别忘记它也是被放在一个集合里哦!因为JQuery它是DOM对象的一个集合。如,“$("tr:first")”返回所有tr元素的第一个tr元素,它仍然被保存在集合中。    
  45. b) “:last”,选取最后一个元素。如,“$("tr:last")”返回所有tr元素的最后一个tr元素,它仍然被保存在集合中。    
  46. c) “:not(selector)”,去除所有与给定选择器匹配的元素。如,“$("input:not(:checked)")”返回所有input元素,但去除被选中的元素(单选框、多选框)。    
  47. d) “:even”,选取所有元素中偶数的元素。因为JQuery对象是一个集合,这里的偶数指的就是集合的索引,索引从0开始。    
  48. e) “:odd”,选取所有元素中奇数的元素,索引从0开始。    
  49. f) “:eq(index)”,选取指定索引的元素,索引从0开始。    
  50. g) “:gt(index)”,选取索引大于指定index的元素,索引从0开始。    
  51. h) “:lt(index)”,选取索引小于指定index的元素,索引从0开始。    
  52. i) “:header”,选取所有的标题元素,如hq、h2等。    
  53. j) “:animated”,选取当前正在执行的所有动画元素。    
  54.   
  55. 2). 内容过滤选择器    
  56. 它是对元素和文本内容的操作。    
  57. a) “:contains(text)”,选取包含text文本内容的元素。    
  58. b) “:empty”,选取不包含子元素或者文本节点的空元素。    
  59. c) “:has(selector)”,选取含有选择器所匹配的元素的元素。    
  60. d) “:parent”,选取含有子元素或文本节点的元素。(它是一个父节点)    
  61.   
  62. 3). 可见性过滤选择器    
  63. 根据元素的可见与不可见状态来选取元素。    
  64. “:hidden”,选取所有不可见元素。    
  65. “:visible”,选择所有可见元素。    
  66. 可见选择器:hidden 不仅包含样式属性 display 为 none 的元素,也包含文本隐藏域 ()和 visible:hidden 之类的元素。    
  67.   
  68. 4).属性过滤选择器    
  69. 通过元素的属性来选取相应的元素。    
  70. a) “[attribute]”,选取拥有此属性的元素。    
  71. b) “[attribute=value]”,选取指定属性值为value的所有元素。    
  72. c) “[attribute !=value]”,选取属性值不为value的所有元素。    
  73. d) “[attribute ^= value]”,选取属性值以value开始的所有元素。    
  74. e) “[attribute $= value]”,选取属性值以value结束的所有元素。    
  75. f) “[attribute *= value]”,选取属性值包含value的所有元素。    
  76. g) “[selector1] [selector2]…[selectorN]”,复合性选择器,首先经[selector1]选择返回集合A,集合A再经过[selector2]选择返回集合B,集合B再经过[selectorN]选择返回结果集合。    
  77.   
  78. 5). 子元素过滤选择器    
  79. 一看名字便是,它是对某一元素的子元素进行选取的。    
  80. a) “:nth-child(index/even/odd)”,选取索引为index的元素、索引为偶数的元素、索引为奇数的元素。    
  81. l nth-child(even/odd):能选取每个父元素下的索引值为偶(奇)数的元素。    
  82. l nth-child(2):能选取每个父元素下的索引值为 2 的元素。    
  83. l nth-child(3n):能选取每个父元素下的索引值是 3 的倍数的元素。    
  84. l nth-child(3n + 1):能选取每个父元素下的索引值是 3n + 1的元素。    
  85. b) “:first-child”,选取第一个子元素。    
  86. c) “:last-child”,选取最后一个子元素。    
  87. d) “:only-child”,选取唯一子元素,它的父元素只有它这一个子元素。    
  88.   
  89. 6). 表单过滤选择器    
  90. 选取表单元素的过滤选择器。    
  91. a) “:input”,选取所有