jQuery知识点大全

来源:互联网 发布:sql两表拼 编辑:程序博客网 时间:2024/06/04 18:07

*引用jquery

[java] view plaincopy
  1. <script type="text/javascript" src="http://www.css88.com/tool/css3Preview/jquery-1.4.2.min.js"></script>  

*live事件实际就是加载事件
[java] view plaincopy
  1. $("button").live("click",function(){  
  2.   $("p").slideToggle(); //slideToggle()是像拉窗帘一样的事件  
  3. });  

*
[java] view plaincopy
  1. var parent = window.parent.document;  
  2.   var form = $('#' + id + ' form', parent);//这里的后面一个参数指的是在这个对象中查找这个元素  


*$.isFunction(obj)

[java] view plaincopy
  1. function stub() {  
  2.     }  
  3. var objs = [  
  4.             function () {},{ x:15, y:20 },  
  5.             null,  
  6.             stub,  
  7.             "function"  
  8.           ];  
  9.         jQuery.each(objs, function (i) {  
  10.         var isFunc = jQuery.isFunction(objs[i]);  
  11.         $("span:eq( " + i + ")").text(isFunc);  
  12.       });  


*$.extend()

[java] view plaincopy
  1.  1.Jquery的扩展方法原型是:     
  2. extend(dest,src1,src2,src3...);  
  3.      它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,  
  4.   
  5.   
  6. var newSrc=$.extend({},src1,src2,src3...)//也就是将"{}"作为dest参数。  
  7.      这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:  
  8.   
  9.   
  10. var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})   
  11.      那么合并后的结果  
  12.  result={name:"Jerry",age:21,sex:"Boy"}//也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。  
  13.       
  14. 2.省略dest参数  
  15.      上述的extend方法原型中的dest参数是可以省略的,如果省略了,则该方法就只能有一个src参数,而且是将该src合并到调用extend方法的对象中去,如:  
  16.   (1)$.extend(src)//该方法就是将src合并到jquery的全局对象中去,如:  
  17.     $.extend({  hello:function(){alert('hello');}  });//就是将hello方法合并到jquery的全局对象中。  
  18.     
  19.  (2)$.fn.extend(src)//该方法将src合并到jquery的实例对象中去,如:  
  20.     $.fn.extend({  hello:function(){alert('hello');} }); // 就是将hello方法合并到jquery的实例对象中。  
  21.   
  22.   
  23.   下面例举几个常用的扩展实例:  
  24.     $.extend({net:{}}); //这是在jquery全局对象中扩展一个net命名空间。  
  25.     $.extend($.net,{   hello:function(){alert('hello');}  })//这是将hello方法扩展到之前扩展的Jquery的net命名空间中去。  
  26.      
  27. 3.Jquery的extend方法还有一个重载原型:    
  28.     extend(boolean,dest,src1,src2,src3...)  //第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深层拷贝,我们看一个例子:  
  29.     (1)  
  30.     var result=$.extend( true,  {}, {name: "John", location: {city: "Boston",county:"USA"} },        
  31.             { last: "Resig", location: {state: "MA",county:"China"} } );   
  32.     //我们可以看出src1中嵌套子对象location:{city:"Boston"},src2中也嵌套子对象location:{state:"MA"},第一个深度拷贝参数为true,那么合并后的结果就是:   
  33.   
  34.   
  35.     result={name:"John",last:"Resig", location:{city:"Boston",state:"MA",county:"China"}}   
  36.   
  37.   
  38.        //也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:  
  39.     (2)  
  40.     var result=$.extend( false, {},  { name: "John", location:{city: "Boston",county:"USA"} },    
  41.     { last: "Resig", location: {state: "MA",county:"China"} }  ); //那么合并后的结果就是:  
  42.     result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}   

*each()
[java] view plaincopy
  1. 下面提一下each的几种常用的用法  
  2.   
  3.   
  4. 1.each处理一维数组  
  5.   var arr1 = [ "aaa""bbb""ccc" ];        
  6.   $.each(arr1, function(i,val){        
  7.       alert(i);     
  8.       alert(val);  
  9.   });     
  10. alert(i)将输出012  
  11. alert(val)将输出aaa,bbb,ccc  
  12.    
  13. 2.each处理二维数组    
  14.   var arr2 = [['a''aa''aaa'], ['b''bb''bbb'], ['c''cc''ccc']]        
  15.   $.each(arr, function(i, item){        
  16.       alert(i);     
  17.       alert(item);        
  18.   });    
  19. arr2为一个二维数组,item相当于取这二维数组中的每一个数组。  
  20. item[0]相对于取每一个一维数组里的第一个值     
  21. alert(i)将输出为012,因为这二维数组含有3个数组元素  
  22. alert(item)将输出为  ['a''aa''aaa'],['b''bb''bbb'],['c''cc''ccc']  
  23.    
  24. 3.对此二位数组的处理稍作变更之后  
  25.  var arr = [['a''aa''aaa'], ['b''bb''bbb'], ['c''cc''ccc']]        
  26.    $.each(arr, function(i, item){        
  27.         $.each(item,function(j,val){  
  28.             alert(j);  
  29.             alert(val);  
  30.      });   
  31. });      
  32.  alert(j)将输出为012012012  
  33.  alert(val)将输出为a,aa,aaa,b,bb,bbb,c,cc,ccc  
  34.    
  35. 4.each处理json数据,这个each就有更厉害了,能循环每一个属性       
  36.   
  37.   
  38.    var obj = { one:1, two:2, three:3};        
  39.    each(obj, function(key, val) {        
  40.         alert(key);     
  41.         alert(val);        
  42.    });     
  43. 这里alert(key)将输出one two three  
  44. alert(val)将输出one,1,two,2,three,3  
  45. 这边为何key不是数字而是属性呢,因为json格式内是一组无序的属性-值,既然无序,又何来数字呢。  
  46. 而这个val等同于obj[key]  
  47.    
  48.   
  49.   
  50. 5.ecah处理dom元素,此处以一个input表单元素作为例子。  
  51. 如果你dom中有一段这样的代码  
  52. <input name="aaa" type="hidden" value="111" />  
  53. <input name="bbb" type="hidden" value="222" />  
  54. <input name="ccc" type="hidden" value="333" />  
  55. <input name="ddd" type="hidden"  value="444"/>  
  56. 然后你使用each如下  
  57.  $.each($("input:hidden"), function(i,val){    
  58.      alert(val);  
  59.      alert(i);  
  60.      alert(val.name);  
  61.      alert(val.value);     
  62.  });  那么,alert(val)将输出[object HTMLInputElement],因为它是一个表单元素。     
  63. alert(i)将输出为0123   
  64. alert(val.name);将输出aaa,bbb,ccc,ddd,如果使用this.name将输出同样的结果  
  65. alert(val.value);  将输出111,222,333,444,如果使用this.value将输出同样的结果  
  66.   
  67.   
  68.    
  69. 如果将以上面一段代码改变成如下的形式    
  70. $("input:hidden").each(function(i,val){  
  71.     alert(i);  
  72.     alert(val.name);  
  73.     alert(val.value);         
  74. }); 可以看到,输出的结果是一样的,  
原创粉丝点击