javascript之jquery基础 选择器

来源:互联网 发布:数据库如何使用boolean 编辑:程序博客网 时间:2024/05/20 22:02


前言

jQuery已经从其他javascript库中脱颖而出.查看http://www.google.com.hk/trends的结果

window.onload与$(document).ready()区别

1.window.onload必须等所有内容加载完才能运行,包括图片,而jquery等dom绘制完就可以执行,可能DOM加载的东西没关联

2.window.onload不能写多个,jquery可以

3.jquery可简写成$(function(){});

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>1-3</title>  
  6. <!-- 引入 jQuery -->  
  7. <script src="../scripts/jquery.js" type="text/javascript"></script>  
  8. <script type="text/javascript">  
  9. //等待dom元素加载完毕.  
  10. $(document).ready(function(){  
  11.     alert("Hello World!");  
  12. });  
  13.   
  14. //test2  
  15. $(document).ready(function(){  
  16.     alert("Hello again!");  
  17. });  
  18. </script>  
  19. </head>  
  20. <body>  
  21. </body>  
  22. </html>  

jQuery对象与DOM对象互换

jQuery转成DOM

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var $cr=$("#cr");  
  2. var cr=$cr[0];  
  3. alert(cr.checked);  

DOM转成jQuery
[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var cr=document.getElementById("cr");  
  2. var $cr=$(cr);  

$()函数就是jQuery的制造工厂

jQuery判断是否checked

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //等待dom元素加载完毕.  
  2. $(document).ready(function(){  
  3.     var $cr = $("#cr");  //jQuery对象  
  4.     $cr.click(function(){  
  5.         if($cr.is(":checked")){ //jQuery方式判断  
  6.             alert("感谢你的支持!你可以继续操作!");  
  7.         }  
  8.     })  
  9. });  

jQuery无需判断元素是否存在,不存在也不会报错.如果要检测.

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. if($("#tt").length>0){  
  2.   //do something  
  3. }  

基本选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1.  //选择 id为 one 的元素  
  2.    $('#btn1').click(function(){  
  3.  $('#one').css("background","#bfa");  
  4. });  
  5. //选择 class 为 mini 的所有元素  
  6. $('#btn2').click(function(){  
  7.  $('.mini').css("background","#bfa");  
  8. });  
  9. //选择 元素名是 div 的所有元素  
  10. $('#btn3').click(function(){  
  11.  $('div').css("background","#bfa");  
  12. });  
  13. //选择 所有的元素  
  14. $('#btn4').click(function(){  
  15.  $('*').css("background","#bfa");  
  16. });  
  17. //选择 所有的span元素和id为two的div元素  
  18. $('#btn5').click(function(){  
  19.  $('span,#two').css("background","#bfa");  
  20. });   


层次选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. #("ancestor descendant");  

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. #("parent>child");  


过滤选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1.   //选择第一个div元素.  
  2.     $('#btn1').click(function(){  
  3.   $('div:first').css("background","#bfa");  
  4.  })  
  5.  //选择最后一个div元素.  
  6.  $('#btn2').click(function(){  
  7.   $('div:last').css("background","#bfa");  
  8.  })  
  9.  //选择class不为one的 所有div元素.  
  10.  $('#btn3').click(function(){  
  11.   $('div:not(.one)').css("background","#bfa");  
  12.  })  
  13.  //选择 索引值为偶数 的div元素。  
  14.  $('#btn4').click(function(){  
  15.   $('div:even').css("background","#bfa");  
  16.  })  
  17.  //选择 索引值为奇数 的div元素。  
  18.  $('#btn5').click(function(){  
  19.   $('div:odd').css("background","#bfa");  
  20.  })  
  21.  //选择 索引等于 3 的元素  
  22.  $('#btn6').click(function(){  
  23.   $('div:eq(3)').css("background","#bfa");  
  24.  })  
  25.  //选择 索引大于 3 的元素  
  26.  $('#btn7').click(function(){  
  27.   $('div:gt(3)').css("background","#bfa");  
  28.  })  
  29. //选择 索引小于 3 的元素  
  30.  $('#btn8').click(function(){  
  31.   $('div:lt(3)').css("background","#bfa");  
  32.  })  
  33.   //选择 所有的标题元素.比如h1, h2, h3等等...  
  34.  $('#btn9').click(function(){  
  35.   $(':header').css("background","#bfa");  
  36.  })  
  37.  //选择 当前正在执行动画的所有元素.  
  38.  $('#btn10').click(function(){  
  39.   $(':animated').css("background","#bfa");  
  40.  });  
  41.  //选择 当前获取焦点的所有元素.  
  42.  $('#btn11').click(function(){  
  43.   $(':focus').css("background","#bfa");  
  44.  });  

内容选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //选取含有文本"di"的div元素.  
  2.    $('#btn1').click(function(){  
  3.  $('div:contains(di)').css("background","#bbffaa");  
  4. })  
  5. //选取不包含子元素(或者文本元素)的div空元素.  
  6. $('#btn2').click(function(){  
  7.  $('div:empty').css("background","#bbffaa");  
  8. })  
  9. //选取含有class为mini元素 的div元素.  
  10. $('#btn3').click(function(){  
  11.  $("div:has('.mini')").css("background","#bbffaa");  
  12. })  
  13. //选取含有子元素(或者文本元素)的div元素.  
  14. $('#btn4').click(function(){  
  15.  $('div:parent').css("background","#bbffaa");  
  16. })  

可见性过滤器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1.     $('#reset').click(function(){  
  2.      window.location.reload();  
  3.  })  
  4.     //给id为mover的元素添加动画.  
  5.   function animateIt() {  
  6.   $("#mover").slideToggle("slow", animateIt);  
  7.    }  
  8. animateIt();  
  9.    
  10. //选取所有不可见的元素.包括<input type="hidden"/>.  
  11.     $('#btn_hidden').click(function(){  
  12.      alert( "不可见的元素有:"+$('body :hidden').length +"个!\n"+  
  13.    "其中不可见的div元素有:"+$('div:hidden').length+"个!\n"+  
  14.    "其中文本隐藏域有:"+$('input:hidden').length+"个!");  
  15.   $('div:hidden').show(3000).css("background","#bbffaa");  
  16.  })  
  17.  //选取所有可见的元素.  
  18.  $('#btn_visible').click(function(){  
  19.   $('div:visible').css("background","#FF6500");  
  20.  })  

属性选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //选取含有 属性title 的div元素.  
  2.       $('#btn1').click(function(){  
  3.           $('div[title]').css("background","#bbffaa");  
  4.       })  
  5.       //选取 属性title值等于 test 的div元素.  
  6.       $('#btn2').click(function(){  
  7.           $('div[title=test]').css("background","#bbffaa");  
  8.       })  
  9.       //选取 属性title值不等于 test 的div元素.  
  10.       $('#btn3').click(function(){  
  11.           $('div[title!=test]').css("background","#bbffaa");  
  12.       })  
  13.       //选取 属性title值 以 te 开始 的div元素.  
  14.       $('#btn4').click(function(){  
  15.           $('div[title^=te]').css("background","#bbffaa");  
  16.       })  
  17.       //选取 属性title值 以 est 结束 的div元素.  
  18.       $('#btn5').click(function(){  
  19.           $("div[title$=est]").css("background","#bbffaa");  
  20.       })  
  21.       //选取 属性title值 含有 es  的div元素.  
  22.       $('#btn6').click(function(){  
  23.           $("div[title*=es]").css("background","#bbffaa");  
  24.       })  
  25.       //组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有 es 的元素.  
  26.       $('#btn7').click(function(){  
  27.           $("div[id][title*=es]").css("background","#bbffaa");  
  28.       })  
  29.   //选取 属性title值 以 en 开始 的div元素.  
  30.   $('#btn1').click(function(){  
  31.     $('div[title^="en"]').css("background","#bbffaa");  
  32.   })  
  33.   //选取 属性title值 含有 en  的div元素.  
  34.   $('#btn2').click(function(){  
  35.     $('div[title*="en"]').css("background","#bbffaa");  
  36.   })  
  37.   //选取 属性title等于en或以en为前缀(该字符串后跟一个连字符'-')的元素  
  38.   $('#btn3').click(function(){  
  39.     $('div[title|="en"]').css("background","#bbffaa");  
  40.   })  
  41.   //选取 属性title用空格分隔的值中包含字符uk的元素.  
  42.   $('#btn4').click(function(){  
  43.     $('div[title~="uk"]').css("background","#bbffaa");  
  44.   })  

子元素过滤选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //选取每个父元素下的第2个子元素  
  2.    $('#btn1').click(function(){  
  3.  $('div.one :nth-child(2)').css("background","#bbffaa");  
  4. })  
  5. //选取每个父元素下的第一个子元素  
  6. $('#btn2').click(function(){  
  7.  $('div.one :first-child').css("background","#bbffaa");  
  8. })  
  9. //选取每个父元素下的最后一个子元素  
  10. $('#btn3').click(function(){  
  11.  $('div.one :last-child').css("background","#bbffaa");  
  12. })  
  13. //如果父元素下的仅仅只有一个子元素,那么选中这个子元素  
  14. $('#btn4').click(function(){  
  15.  $('div.one :only-child').css("background","#bbffaa");  
  16. })  

表单对象属性过滤选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1.     //重置表单元素  
  2.  $(":reset").click(function(){  
  3.   setTimeout(function() {  
  4.     countChecked();  
  5.     $("select").change();  
  6.   },0);  
  7.  });  
  8.   
  9.    
  10.  //对表单内 可用input 赋值操作.  
  11.     $('#btn1').click(function(){  
  12.   $("#form1 input:enabled").val("这里变化了!");    
  13.   return false;  
  14.  })  
  15.  //对表单内 不可用input 赋值操作.  
  16.  $('#btn2').click(function(){  
  17.   $("#form1 input:disabled").val("这里变化了!");  
  18.   return false;  
  19.  })  
  20.  //使用:checked选择器,来操作多选框.  
  21.  $(":checkbox").click(countChecked);  
  22.   
  23.  function countChecked() {  
  24.   var n = $("input:checked").length;  
  25.   $("div").eq(0).html("<strong>有"+n+" 个被选中!</strong>");  
  26.     }  
  27.   
  28.  countChecked();//进入页面就调用.  
  29.   
  30. //使用:selected选择器,来操作下拉列表.  
  31.  $("select").change(function () {  
  32.       var str = "";  
  33.       $("select :selected").each(function () {  
  34.             str += $(this).text() + ",";  
  35.       });  
  36.       $("div").eq(1).html("<strong>你选中的是:"+str+"</strong>");  
  37.     }).trigger('change');  
  38. // trigger('change') 在这里的意思是:  
  39. // select加载后,马上执行onchange.  
  40. // 也可以用.change()代替.  

表单选择器

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1.    var $alltext = $("#form1 :text");  
  2.    var $allpassword= $("#form1 :password");  
  3.    var $allradio= $("#form1 :radio");  
  4.    var $allcheckbox= $("#form1 :checkbox");  
  5.   
  6. var $allsubmit= $("#form1 :submit");  
  7. var $allimage= $("#form1 :image");  
  8. var $allreset= $("#form1 :reset");  
  9. var $allbutton= $("#form1 :button"); // <input type=button />  和 <button ></button>都可以匹配  
  10. var $allfile= $("#form1 :file");  
  11.    var $allhidden= $("#form1 :hidden"); // <input type="hidden" />和<div style="display:none">test</div>都可以匹配.  
  12.    var $allselect = $("#form1 select");  
  13.    var $alltextarea = $("#form1 textarea");  
  14.      
  15. var $AllInputs = $("#form1 :input");  
  16. var $inputs = $("#form1 input");  
  17.   
  18.    $("div").append(" 有" + $alltext.length + " 个( :text 元素)<br/>")  
  19.         .append(" 有" + $allpassword.length + " 个( :password 元素)<br/>")  
  20.         .append(" 有" + $allradio.length + " 个( :radio 元素)<br/>")  
  21.            .append(" 有" + $allcheckbox.length + " 个( :checkbox 元素)<br/>")  
  22.         .append(" 有" + $allsubmit.length + " 个( :submit 元素)<br/>")  
  23.            .append(" 有" + $allimage.length + " 个( :image 元素)<br/>")  
  24.         .append(" 有" + $allreset.length + " 个( :reset 元素)<br/>")  
  25.         .append(" 有" + $allbutton.length + " 个( :button 元素)<br/>")  
  26.         .append(" 有" + $allfile.length + " 个( :file 元素)<br/>")  
  27.         .append(" 有" + $allhidden.length + " 个( :hidden 元素)<br/>")  
  28.         .append(" 有" + $allselect.length + " 个( select 元素)<br/>")  
  29.         .append(" 有" + $alltextarea.length + " 个( textarea 元素)<br/>")  
  30.         .append(" 表单有 " + $inputs.length + " 个(input)元素。<br/>")  
  31.         .append(" 总共有 " + $AllInputs.length + " 个(:input)元素。<br/>")  
  32.         .css("color""red")  
  33.   
  34.    $("form").submit(function () { return false; }); // return false;不能提交. 
0 0
原创粉丝点击