jQuery基础之二 -- 选择器

转载:http://blog.csdn.net/zzq58157383/article/details/7645294

在Dom编程中我们只能使用有限的函数根据id或者TagName获取Dom对象. 在jQuery中则完全不同,jQuery提供了异常强大的选择器用来帮助我们获取页面上的对象, 并且将对象以jQuery包装集的形式返回.

性能优化: 相比于通过 ClassName 来选择,应该优先考虑用 TagName 搭配 ClassName 来选择,或是在页面只有少量对象时用唯一性的 ID 来选择,而且要尽量避免不必要的调用

1.基本选择器:通过元素id、class和标签名等来查找DOM元素

  1. $("#id")    选取id为“id”的元素  
  2. $(".class") 选取所有class为“class”的元素  
  3. $("p")      选取所有的<p>元素  
  4. $("*")      选取页面所有的元素  
  5. $("div, span, p.myClass")   选取所有的<div>,<span>和拥有class为myClass的元素  


2.层次选择器: 通过DOM元素之间的层次关系来获取特定元素

  1. 后代元素: $("ancestor descendant")  $("div span")选取所有<div>里的所有的元素名是<span>后代元素  
  2. 子元素:   $("parent > child")       $("div > span")选取所有<div>元素下元素名是<span>的子元素  
  3. 相邻元素: $("prev + next")          $(".one + div")选取class"one"的元素的下一个<div>元素 等价于$(".one").next("div")  
  4. 兄弟元素: $("prev ~ siblings")      $("#two ~ div")选取id为"two"的元素后面的所有<div>兄弟元素 等价于$("#two").nextAll("div")  
  5.                                      $("#prev").siblings("div")选取#prev所有的同辈/兄弟元素,无论前后位置   


3.过滤选择器:通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪选择器语法相同,以一个冒号(:)开头

  1. 基本过滤:   
  2. :first          $("div:first")选取所有<div>元素中第一个<div>元素  
  3. :last           $("div:last")选取所有<div>元素中最后一个<div>元素  
  4. :not(selector)  $("input:not(.myClass)")选取class不是myClass的<input>元素  
  5. :even            $("input:even")选取索引是偶数的<input>元素,索引从0开始  
  6. :odd             $("input:odd")选取索引是奇数的<input>元素,索引从0开始  
  7. :eq(index)       $("input:eq(1)")选取索引等于1的<input>元素  
  8. :gt(index)       $("input:gt(1)")选取索引大于1(不包括1)的<input>元素  
  9. :lt(index)       $("input:lt(1)")选取索引小于1(不包括1)的<input>元素  
  10. :header          $(":header")选取网页中所有的<h1>,<h2>,<h3>...  
  11. :animated        $("div:animated")选取正在执行动画的<div>元素  
  12.   
  13. 内容过滤:   
  14. :contains(text)  $("div:contains('我')")选取含有文本‘我’的<div>元素  
  15. :empty           $("div:empty")选取不包含子元素(包括文本元素)的<div>空元素  
  16. :has(selector)   $("div:has(p)")选取含有<p>元素的<div>元素  
  17. :parent          $("div:parent")选取拥有子元素(包括文本元素)的<div>元素  
  18.   
  19. 可见性过滤:   
  20. :hidden         $(":hidden")选取所有不可见的元素,包括<input type="hidden"/>, <div style="display:none;"/>和<div style="visibility:hidden;"/>等元素  
  21.                  $("input:hidden")选取所有不可见的<input>元素  
  22. :visible        $("div:visible")选取所有可见的<div>元素  
  23.   
  24. 属性过滤:   
  25. [attribute]         $("div[id]")选取拥有属性id的<div>元素  
  26. [attribute=value]   $("div[title=test]")选取属性title等于"test"的<div>元素  
  27. [attribute!=value]  $("div[title=test]")选取属性titlei不等于"test"(包括没有title属性的元素)的<div>元素  
  28. [attribute^=value]  $("div[title^=test]")选取属性title以"test"开头的<div>元素  
  29. [attribute$=value]  $("div[title$=test]")选取属性title以"test"结尾的<div>元素  
  30. [attribute*=value]  $("div[title*=test]")选取属性title包含"test"的<div>元素  
  31. [selector1][selector2]...  $("div[id][title$=test]")选取拥有属性id,并且属性title以"test"结尾的<div>元素  
  32.   
  33. 子元素过滤:   
  34. :nth-child(index/enen/odd/equation)选取每个父元素下的第index个子元素或者奇偶元素(index从1开始算),:eq(index)是从0开始算的,且只匹配一个元素  
  35.    :nth-child(enen)选取每个父元素下的索引值是偶数的元素  
  36.    :nth-child(odd)选取每个父元素下的索引值是奇数的元素  
  37.    :nth-child(2)选取每个父元素下的索引值等于2的元素  
  38.    :nth-child(3n)选取每个父元素下的索引值是3的倍数的元素(n从0开始)  
  39.    :nth-child(3n+1)选取每个父元素下的索引值是(3n+1) 的元素(n从0开始)  
  40. :first-child      $("ul li:first-child")选取每个<ul>中第1个<li>元素  
  41. :last-child       $("ul li:last-child")选取每个<ul>中最后1个<li>元素  
  42. :only-child       $("ul li:only-child")在<ul>中选取是惟一子元素的<li>元素  
  43.   
  44. 表单对象属性过滤:   
  45. :enabled          $("#form1:enabled")选取id为"form1"的表单内的所有可用元素  
  46. :disabled         $("#form2:disabled")选取id为"form2"的表单内的所有不可用元素  
  47. :checked          $("input:checked")选取所有被选中的<input>元素  
  48. :selected         $("select :selected")选取所有被选中的选项元素  


4.表单选择器:

  1. :input      $(":input")选取所有<input>、<textarea>、<select>、<button>元素  
  2. :text       $(":text")选取所有的单行文本框  
  3. :password   $(":password")选取所有的密码框  
  4. :radio      $(":radio")选取所有的单选框  
  5. :checkbox   $(":checkbox")选取所有的复选框  
  6. :button     $(":button")选取所有的按钮  
  7. :submit     $(":submit")选取所有的提交按钮  
  8. :reset      $(":reset")选取所有的重置按钮  
  9. :image      $(":image")选取所有的图像按钮  
  10. :file       $(":file")选取所有的上传域  
  11. :hidden     $(":hidden")选取所有不可见的元素  

 

jQuery选择器注意:

    1.选择器中含有 “.”, "#", "(", "]"等特殊字符要进行转义,如$('#id\\#b'); 选取id为id#b的元素

    2.选择器中含有空格问题

         var a=$('.test :hidden'); 带空格的是后代选择器,选取class为‘test’的元素里面的隐藏元素

         var b=$('.test:hidden');  不带空格的是过滤选择器,选取隐藏的class为‘test’的元素

posted on 2014-04-28 16:28  pcshell  阅读(112)  评论(0编辑  收藏  举报

导航