• jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素。注意:jQuery选择器返回的是jQuery对象。
  • jQuery选择器有很多,基本兼容了CSS1到CSS3所有的选择器,并且jQuery还添加了很多更加复杂的选择器。(查看jQuery文档)
  • jQuery选择器虽然很多,但是选择器之间可以相互替代,就是说获取一个元素,你会有很多种方法获取到。所以我们平时真正能用到的只是少数的最常用的选择器。


一、基本选择器

  1. #id id选择器,<xxx id=""> 通过id值获得元素
  2. element 标签选择器,<xxx> 通过标签名获得元素
  3. .class 类选择器,<xxx class=""> 通过class值获得元素。
  4. * 所有元素
  5. s1,s2,... 多选择器,将多个选择器的结果添加一个数组中。

示例:

  1. $(document).ready(
  2. function(){
  3. //<input type="button" value="选择 id为 one 的元素." id="btn1"/>
  4. $("#btn1").click(function(){
  5. $("#one").css("background-color","red");
  6. });
  7. //<input type="button" value="选择 class 为 mini 的所有元素." id="btn2"/>
  8. $("#btn2").click(function(){
  9. $(".mini").css("background-color","blue");
  10. });
  11. //<input type="button" value="选择 元素名是 div 的所有元素." id="btn3"/>
  12. $("#btn3").click(function(){
  13. $("div").css("background-color","yellow");
  14. });
  15. //<input type="button" value="选择 所有的元素." id="btn4"/>
  16. $("#btn4").click(function(){
  17. $("*").css("background-color","green");
  18. });
  19. //<input type="button" value="选择 所有的span元素和id为two的元素." id="btn5"/>
  20. $("#btn5").click(function(){
  21. $("span,#two").css("background-color","brown");
  22. });
  23. }
  24. );

jQuery案例-开关灯

  1. <script>
  2. //页面的加载事件
  3. $(function () {
  4. //获取按钮,注册点击事件
  5. $("#btn").click(function () {
  6. //.val()方法--->获取按钮的value属性的值
  7. //.val("内容");是设置按钮的value属性的值
  8. if($(this).val()=="关灯"){
  9. $("body").css("backgroundColor","black");
  10. $(this).val("开灯");
  11. }else{
  12. $("body").css("backgroundColor","white");
  13. $(this).val("关灯");
  14. }
  15. });
  16. });
  17. </script>

二、层级选择器

  1. A B ,获得A元素内部所有的B元素。(爷孙)
  2. A > B ,获得A元素内部所有的B子元素。(父子)
  3. A + B ,获得A元素后面的第一个兄弟B。(兄弟)
  4. A ~ B ,获得A元素后面的所有的兄弟B。(兄弟)
  5. A.siblings(“div”),A的所有是div的兄弟

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. //<input type="button" value="选择 body内的所有div元素." id="btn1"/>
  4. $("#btn1").click(function() {
  5. $("body div").css("background-color", "red");
  6. });
  7. //<input type="button" value="在body内,选择子元素是div的。" id="btn2"/>
  8. $("#btn2").click(function() {
  9. $("body > div").css("background-color", "yellow");
  10. });
  11. //<input type="button" value="选择 id为one 的下一个div元素." id="btn3"/>
  12. $("#btn3").click(function() {
  13. $("#one + div").css("background-color", "blue");
  14. });
  15. //<input type="button" value="选择 id为two的元素后面的所有div兄弟元素." id="btn4"/>
  16. $("#btn4").click(function() {
  17. $("#two ~ div").css("background-color", "green");
  18. });
  19. //<input type="button" value="选择 id为two的元素的所有div兄弟元素." id="btn5"/>
  20. $("#btn5").click(function() {
  21. $("#two").siblings("div").css("background-color", "brown");
  22. });
  23. });
  24. </script>

案例:鼠标移上当前的li高亮

  1. <ul id="uu">
  2. <li>第一个</li>
  3. <li>第二个</li>
  4. <li>第三个</li>
  5. <li>第四个</li>
  6. <li>第五个</li>
  7. </ul>
  8. <script>
  9. //获取列表中每个li,当鼠标进入后,当前的li有高亮显示,点击的时候可以让当前被点击的li的字体变大,字体的颜色改变,改变字体
  10. $(function () {
  11. $("#uu>li").mouseover(function () {
  12. $(this).css("backgroundColor","red").siblings("li").css("backgroundColor","");
  13. }).click(function () {
  14. $(this).css("fontSize","50px").css("color","green").css("fontFamily","全新硬笔行书简");
  15. });
  16. });
  17. </script>

三、基本过滤选择器

  1. 过滤选择器都是带冒号
  2. :first 第一个
  3. :last 最后一个
  4. :eq(index) 获得指定索引
  5. :gt(index) 大于
  6. :lt(index) 小于
  7. :animated 获得所有动画
  8. :not(selector) 去除所有与给定选择器匹配的元素
  9. :focus 获得焦点
  10. ------------------------------
  11. :header 获得所有标题元素。例如:<h1>...<h6>
  12. :even 偶数,从 0 开始计数。例如:查找表格的135...行(即索引值024...)
  13. :odd 奇数

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. //<input type="button" value="选择第一个div元素." id="btn1"/>
  4. $("#btn1").click(function() {
  5. $("div:first").css("background-color", "red");
  6. });
  7. //<input type="button" value="选择最后一个div元素." id="btn2"/>
  8. $("#btn2").click(function() {
  9. $("div:last").css("background-color", "yellow");
  10. });
  11. //<input type="button" value="选择class不为one的 所有div元素." id="btn3"/>
  12. $("#btn3").click(function() {
  13. $("div:not('.one')").css("background-color", "blue");
  14. });
  15. //<input type="button" value="选择索引值为偶数 的div元素." id="btn4"/>
  16. $("#btn4").click(function() {
  17. $("div:even").css("background-color", "brown");
  18. });
  19. //<input type="button" value="选择索引值为奇数 的div元素." id="btn5"/>
  20. $("#btn5").click(function() {
  21. $("div:odd").css("background-color", "yellow");
  22. });
  23. //<input type="button" value="选择索引值等于3的元素." id="btn6"/>
  24. $("#btn6").click(function() {
  25. $("div:eq(3)").css("background-color", "blue");
  26. });
  27. //<input type="button" value="选择索引值大于3的元素." id="btn7"/>
  28. $("#btn7").click(function() {
  29. $("div:gt(3)").css("background-color", "red");
  30. });
  31. //<input type="button" value="选择索引值小于3的元素." id="btn8"/>
  32. $("#btn8").click(function() {
  33. $("div:lt(3)").css("background-color", "green");
  34. });
  35. //<input type="button" value="选择所有的标题元素." id="btn9"/>
  36. $("#btn9").click(function() {
  37. $(":header").css("background-color", "green").css("font-size","30px");
  38. });
  39. //<input type="button" value="选择当前正在执行动画的所有元素." id="btn10"/>
  40. $("#btn10").click(function() {
  41. $(":animated").css("background-color", "green");
  42. });
  43. });
  44. </script>

四、内容过滤选择器

  1. :empty 当前元素是否为空(是否有标签体--子元素、文本)
  2. :has(...) 当前元素,是否含有指定的子元素
  3. :parent 当前元素是否是父元素(自己是否拥有子元素)
  4. :contains( text ) 标签体是否含有指定的文本

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. //<input type="button" value="选取含有文本“di”的div元素." id="btn1"/>
  4. $("#btn1").click(function(){
  5. $("div:contains('di')").css("background-color","red");
  6. });
  7. //<input type="button" value="选取不包含子元素(或者文本元素)的div空元素." id="btn2"/>
  8. $("#btn2").click(function(){
  9. $("div:empty").css("background-color","yellow");
  10. });
  11. //<input type="button" value="选取含有class为mini元素 的div元素." id="btn3"/>
  12. $("#btn3").click(function(){
  13. $("div:has('.mini')").css("background-color","blue");
  14. });
  15. //<input type="button" value="选取含有子元素(或者文本元素)的div元素." id="btn4"/>
  16. $("#btn4").click(function(){
  17. $("div:parent").css("background-color","green");
  18. });
  19. });
  20. </script>

五、可见性过滤选择器

  1. :hidden 隐藏。特指 <xxx style="display:none;"> ,或者 <input type="hidden">
  2. :visible 可见(默认)

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. //<input type="button" value=" 选取所有可见的div元素" id="b1"/>
  4. $("#b1").click(function(){
  5. $("div:visible").css("background-color","red");
  6. });
  7. //<input type="button" value=" 选取所有不可见的元素, 利用 jQuery 中的 show() 方法将它们显示出来" id="b2"/>
  8. $("#b2").click(function(){
  9. $("div:hidden").show(1000).css("background-color","yellow");
  10. });
  11. //<input type="button" value=" 选取所有的文本隐藏域, 并打印它们的值" id="b3"/>
  12. $("#b3").click(function(){
  13. //这种方式只能打印第一个的值
  14. //alert($("input:hidden").val());
  15. //使用each遍历所有的隐藏域
  16. $("input:hidden").each(function(){
  17. alert($(this).val());
  18. });
  19. });
  20. //<input type="button" value=" 选取所有的文本隐藏域, 并打印它们的值" id="b4"/>
  21. $("#b4").click(function(){
  22. //使用each全局函数进行遍历
  23. /*
  24. *function(index,domEle)
  25. *第一个参数 :遍历的索引
  26. *第二个参数:遍历的元素
  27. */
  28. $.each($("input:hidden"),function(index,domEle){
  29. alert($(this).val());
  30. });
  31. });
  32. });
  33. </script>

六、属性选择器

  1. [属性名] 获得指定的属性名的元素
  2. [属性名=值] 获得属性名 等于 指定值的 的元素【1
  3. [属性名!=值] 获得属性名 不等于 指定值的 的元素
  4. [as1][as2][as3].... 复合选择器,多个条件同时成立。类似 where ...and...and2
  5. [属性名^=值] 获得以属性值 开头 的元素
  6. [属性名$=值] 获得以属性值 结尾 的元素
  7. [属性名*=值] 获得 含有属性值 的元素

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. //<input type="button" value="选取含有 属性title 的div元素." id="btn1"/>
  4. $("#btn1").click(function(){
  5. $("div[title]").css("background-color","red");
  6. });
  7. //<input type="button" value="选取 属性title值等于“test”的div元素." id="btn2"/>
  8. $("#btn2").click(function(){
  9. $("div[title='test']").css("background-color","blue");
  10. });
  11. //<input type="button" value="选取 属性title值不等于“test”的div元素(没有属性title的也将被选中)." id="btn3"/>
  12. $("#btn3").click(function(){
  13. $("div[title!='test']").css("background-color","yellow");
  14. });
  15. //<input type="button" value="选取 属性title值 以“te”开始 的div元素." id="btn4"/>
  16. $("#btn4").click(function(){
  17. $("div[title^='te']").css("background-color","green");
  18. });
  19. //<input type="button" value="选取 属性title值 以“est”结束 的div元素." id="btn5"/>
  20. $("#btn5").click(function(){
  21. $("div[title$='est']").css("background-color","brown");
  22. });
  23. //<input type="button" value="选取 属性title值 含有“es”的div元素." id="btn6"/>
  24. $("#btn6").click(function(){
  25. $("div[title*='es']").css("background-color","yellow");
  26. });
  27. //<input type="button" value="组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有“es”的元素." id="btn7"/>
  28. $("#btn7").click(function(){
  29. $("div[id][title*='es']").css("background-color","red");
  30. });
  31. });
  32. </script>

七、元素过滤选择器

  1. :nth-child 第几个孩子
  2. :first-child 第一个孩子
  3. :last-child 最后一个孩子
  4. :only-child 仅有一个孩子

八、表单过滤选择器

  1. :input 所有的表单元素。(<input> / <select> / <textarea> / <button>)
  2. :text 文本框<input type="text">
  3. :password 密码框<input type=" password ">
  4. :radio 单选<input type="radio">
  5. :checkbox 复选框<input type="checkbox">
  6. :submit 提交按钮<input type="submit">
  7. :image 图片按钮<input type="image" src="">
  8. :reset 重置按钮<input type="reset">
  9. :file 文件上传<input type="file">
  10. :hidden 隐藏域<input type="hidden"> ,还可以获得<xxx style="display:none">
  11. :button 所有普通按钮。 <button > <input type="button">
  12. select 下拉列表 (没有:号)
  13. textarea 多行文本框(没有:号)

示例:

  1. var $alltext = $("#form1 :text");
  2. var $allpassword= $("#form1 :password");
  3. var $allradio= $("#form1 :radio");
  4. var $allcheckbox= $("#form1 :checkbox");
  5. var $allsubmit= $("#form1 :submit");
  6. var $allimage= $("#form1 :image");
  7. var $allreset= $("#form1 :reset");
  8. var $allbutton= $("#form1 :button"); // <input type=button /> 和 <button ></button>都可以匹配
  9. var $allfile= $("#form1 :file");
  10. var $allhidden= $("#form1 :hidden"); // <input type="hidden" />和<div style="display:none">test</div>都可以匹配.
  11. var $allselect = $("#form1 select");
  12. var $alltextarea = $("#form1 textarea");
  13. var $allInputs = $("#form1 :input");
  14. var $inputs = $("#form1 input");
  15. $("div").append(" 有" + $alltext.length + " 个( :text 元素)<br/>")
  16. .append(" 有" + $allpassword.length + " 个( :password 元素)<br/>")
  17. .append(" 有" + $allradio.length + " 个( :radio 元素)<br/>")
  18. .append(" 有" + $allcheckbox.length + " 个( :checkbox 元素)<br/>")
  19. .append(" 有" + $allsubmit.length + " 个( :submit 元素)<br/>")
  20. .append(" 有" + $allimage.length + " 个( :image 元素)<br/>")
  21. .append(" 有" + $allreset.length + " 个( :reset 元素)<br/>")
  22. .append(" 有" + $allbutton.length + " 个( :button 元素)<br/>")
  23. .append(" 有" + $allfile.length + " 个( :file 元素)<br/>")
  24. .append(" 有" + $allhidden.length + " 个( :hidden 元素)<br/>")
  25. .append(" 有" + $allselect.length + " 个( select 元素)<br/>")
  26. .append(" 有" + $alltextarea.length + " 个( textarea 元素)<br/>")
  27. .append(" 表单有 " + $inputs.length + " 个(input)元素。<br/>")
  28. .append(" 总共有 " + $allInputs.length + " 个(:input)元素。<br/>")
  29. .css("color", "red")
  30. //显示所有的隐藏标签名称
  31. $allhidden.each(function(){
  32. $("div").append("<br/>").append($(this).get(0).nodeName);
  33. });

九、表单对象属性过滤选择器

  1. :enabled 可用
  2. :disabled 不可用。<xxx disabled="disabled"> 或<xxx disabled=""> <xxx disabled>
  3. :checked 选中(单选框radio、复选框 checkbox
  4. :selected 选择(下拉列表 select option

示例:

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. //<button id="btn1">对表单内 可用input 赋值操作.</button>
  4. $("#btn1").click(function(){
  5. $("input:enabled").val("aaaa");
  6. });
  7. //<button id="btn2">对表单内 不可用input 赋值操作.</button>
  8. $("#btn2").click(function(){
  9. $("input:disabled").val("bbbb");
  10. });
  11. //<button id="btn3">获取多选框选中的个数.</button>
  12. $("#btn3").click(function(){
  13. alert($(":checkbox[name='newsletter']:checked").length);
  14. });
  15. //<button id="btn4">获取下拉框选中的内容.</button>
  16. $("#btn4").click(function(){
  17. //注意:此处:前面空格不能漏掉
  18. $("select :selected").each(function(){
  19. $("#selectDivId").append($(this).val());
  20. });
  21. });
  22. });
  23. </script>