jQuery基础开发详解 重要

基础原理

一、$(function(){})与window.onload的不同

  1、$(function(){ ... })在页面下载完后就执行,而window.onload()是在页面下载完毕后(包含图片下载)才能执行

  2、$(function(){ ... })可以写多个,而window.onload()只能写一个

  3、$(document).ready(function(){  })可以简写成$(function(){ ... });

 

二、jquery与DOM对象的互转

  1、DOM对象转成jQuery对象

1 var oDom = document.getElementById("box");
2 
3 var oJquery = $(oDom);    // 将dom对象用$()包含就转成jquery对象

   2、jquery对象转成DOM对象

   jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。

1 $("#msg")[0]
2 
3 $("div").eq(1)[0]
4 
5 $("div").get()[1]
6 
7 $("td")[5]

 

一、选择器获取要操作的元素

基本选择器
1、$("#myDiv") :匹配唯一的具有此id值的元素

2、$("div"): 匹配指定名称的所有元素

3、$(".myClass"): 匹配具有此class样式值的所有元素

4、$("*"): 匹配所有元素

5、$("div,span,p.myClass"): 联合所有匹配的选择器

 

层叠选择器
1、$("form input"): 后代选择器,选择ancestor的所有子孙节点

2、$("#main > *"): 子选择器,选择parent的所有子节点

3、$("label + input"): 临选择器,选择prev的下一个临节点

4、$("#prev ~ div"): 同胞选择器,选择prev的所有同胞节点

 

基本过滤选择器
1、$("tr:first") :匹配第一个选择的元素

2、$("tr:last"):匹配最后一个选择的元素

3、$("input:not(:checked) + span"):从原元素集合中过滤掉匹配selector的所有元素(这里有是一个临选择器)

4、$("tr:even"):匹配集合中偶数位置的所有元素(从0开始)

5、$("tr:odd"):匹配集合中奇数位置的所有元素(从0开始)

6、$("td:eq(2)"):匹配集合中指定位置的元素(从0开始)

7、$("td:gt(4)"):匹配集合中指定位置之后的所有元素(从0开始)

8、$("td:lt(4)"):匹配集合中指定位置之前的所有元素(从0开始)

9、$(":header"):匹配所有标题

10、$("div:animated"):匹配所有正在运行动画的所有元素

 

属性过滤选择器
1、$("div[id]"): 匹配所有具有指定属性的元素 

2、$("input[name='newsletter']"): 匹配所有具有指定属性值的元素 

3、$("input[name!='newsletter']"): 匹配所有不具有指定属性值的元素 

4、$("input[name^='news']"): 匹配所有指定属性值以value开头的元素 

5、$("input[name$='letter']"): 匹配所有指定属性值以value结尾的元素 

6、$("input[name*='man']") :匹配所有指定属性值含有value字符的元素 

7、$("input[id][name$='man']"): 匹配同时符合多个选择器的所有元素

 

 

内容过滤选择器
1、$("div:contains('John')"):匹配含有指定文本的所有元素

2、$("td:empty"):匹配所有空元素(只含有文本的元素不算空元素)

3、$("div:has(p)"):从原元素集合中再次匹配所有至少含有一个selector的所有元素

4、$("td:parent"):匹配所有不为空的元素(含有文本的元素也算)

5、$("div:hidden"):匹配所有隐藏的元素,也包括表单的隐藏域

6、$("div:visible"):匹配所有可见的元素

 

子元素过滤选择器
1、$("ul li:nth-child(2)"),

  $("ul li:nth-child(odd)"), 匹配父元素的第n个子元素

  $("ul li:nth-child(3n + 1)")

      $("p:nth-child(3n)").addClass("ss");  // 每隔三个元素添加一个class名为ss,$("div span:nth-child(2)"),父元素必须是元素不能是class或ID名

2、$("div span:first-child"):匹配父元素的第1个子元素

3、$("div span:last-child"):匹配父元素的最后1个子元素

4、$("div button:only-child"):匹配父元素的唯一1个子元素

  

表单元素选择器
1、$(":input"):匹配所有的表单输入元素,包括所有类型的input, textarea, select 和 button

2、$(":text"):匹配所有类型为text的input元素

3、$(":password"):匹配所有类型为password的input元素

4、$(":radio"):匹配所有类型为radio的input元素

5、$(":checkbox"):匹配所有类型为checkbox的input元素

6、$(":submit"):匹配所有类型为submit的input元素

7、$(":image"):匹配所有类型为image的input元素

8、$(":reset"):匹配所有类型为reset的input元素

9、$(":button"):匹配所有类型为button的input元素

10、$(":file"):匹配所有类型为file的input元素

11、$(":hidden"):匹配所有类型为hidden的input元素或表单的隐藏域

 
表单元素过滤选择器
1、$(":enabled") 匹配所有可操作的表单元素

2、$(":disabled") 匹配所有不可操作的表单元素、

3、$(":checked") 匹配所有已点选的元素

4、$("select option:selected") 匹配所有已选择的元素

 

二、选择器的注意事项

  选择器的特殊符号:选择器中最好不要带"#","(","]","."特殊符号,

  如:<div id="#box"></bod>  $("##box");这样是取不到的,改写成$("#\\#box")

 

二、JQuery操作DOM

创建一个节点

  var oLi = $("<li></li>")

属性处理:
1、$("p").addClass(css中定义的样式类型):给某个元素添加样式

2、$("元素名称").removeClass("class"):给某元素删除指定的样式

3、$("元素名称").toggleClass(class):当元素存在参数中的样式的时候取消,如果不存在就添加此样式

4、$("img").attr({src:"test.jpg",alt:"test Image"}):给某个元素添加属性/值,参数是map

5、$("img").attr("src","test.jpg"):给某个元素添加属性/值

6、$("img").attr("title", function() { return this.src }):给某个元素添加属性/值

7、$("元素名称").removeAttr("属性名称"):给某元素删除指定的属性以及该属性的值

8、$("元素名称").html():获得该元素内的内容(元素,文本等)

9、$("元素名称").html("<b>new stuff</b>"):给某元素设置内容

10、$("元素名称").text():获得该元素的文本

11、$("元素名称").text(value):设置该元素的文本值为value

12、$("input元素名称").val():获取input元素的值嘛普拉

13、$("input元素名称").val(value):设置input元素的值为value

14、$("元素名称").css('属性名'):获取属性值

15、$("元素名称").css('属性名', '属性值'):改变属性值  

16、$("元素名称").css({'属性名': '属性值', '属性名': '属性值',}):改变多个属性值 

17、$("元素名称").offset().left:获取元素偏移量

18、$("元素名称").width():获取元素宽度

19、$("元素名称").width(val):改变元素宽度 

20、$("元素名称").height():获取元素高度 

21、$("元素名称").height(val):改变元素宽度

 

 

Manipulation:

元素内部插入

1、$("li").append(content):将content作为元素的内容插入到li元素中的内容最后面

2、$("li").appendTo("h1"):$(".list14 li").appendTo('h1'); // 将所有的li文件移到h1中的内容最后

3、$("元素").prepend(content):将content作为该元素的一部分,放到该元素的最前面,如:$(".list14 li").prepend("<div>sss</div>"); // 将div插入到每个li中内容的前面

4、$("元素").prependTo(content):将该元素作为content的一部分,放content的最前面

 

元素外部插入
1、$("元素名称").after(content):在匹配元素后面添加内容元素之外

2、$("元素名称").before(content):与after方法相反

3、$("元素名称").insertAfter(content):将该元素移到content之后

4、$("元素名称").insertBefore(content):将该元素移到content之前

 

包裹元素

1、$("元素").wrap("html"):用html来包围该元素  如: $(".list14").wrap("<div></div>"); 

2、$("元素").wrapll(element):用element来包围该元素 

3、$("元素").wraplnner(content):内部包裹

 

替换元素

1、$("元素").replaceAll(selector):替换掉所有的selector元素

2、$("元素").replaceWith(content):将所有匹配元素替换成指定的HTML或DOM元素

 

删除元素 

1、$("元素").remove():删除所有的指定元素 

2、$("元素").remove("exp"):删除所有含有exp的元素

3、$("元素").empty():删除匹配元素集合中所有的子节点

 

复制元素

1、$("元素名称").clone(布尔表达式):当布尔表达式为真时,克隆元素(无参时,当作true处理)

 

  

三、JQuery中的事件

 一、事件机制

  事件在触发后被分两个阶段:1、捕获  2、冒泡  但大多数浏览器并不是都支持捕获

  

  阻止冒泡:event.stopPropagation();  //阻止冒泡过程,还可以通过return false实现停止事件的冒泡过程

$(function () {
    var intI = 0;
    $("body,div,#btnShow").click(function(event){
        intI++;
        $("#clsShow").show()
        .html("你好,欢迎来到JQuery世界")
        .append("<div>执行次数" + intI + "</div>");

        event.stopPropagation();      // 阻止冒泡过程
    })
})

二、页面载入事件

ready()方法的工作原理: jQuery中的页面载入事件ready()方法,该方法类似于onLoad方法,只是在执行的时间上有区别:onLoad方法必须页面全 部元素完全加载到浏览器后才触发,如果jQuery只要页面的DO模型加载完毕,就会触发ready()方法

ready()的几种写法:

1、$(document).ready(function(){   代码部分  })

2、$(function(){ 代码部分  })

3、jQuery(document).ready(function(){  代码部分  })

4、jQuery(function(){  代码部分  })

三、绑定、移除事件

1、bind(type,[data],fn)

$("#tag").bind("click",function(){
    ......
})

处理带绑定函数参数

function headler(event){
    $("#firstname").val(event.data.firstname);
    $("#lastname").val(event.data.lastname);
}
$("#tag").bind("click", {firstname:"den", lastname:"ji"}, handler)})

2、unbind(tyupe,fn):移出绑定

 

四、切换事件

1、hover():可以使元素在鼠标悬停与移出事件中进行切换

2、toggle():可以依次调用N个指定的函数直到最后一个函数

3、one():功能是为所选元素绑定一个仅触发一次的处理函数  one(type,fn)

4、trigger():

五、元素事件列表说明

注:不带参数的函数,其参数为可选的 fn。jQuery不支持form元素的reset事件。

事件 描述 支持元素或对象

1、blur( ):元素失去焦点 a, input, textarea, button, select, label, map, area

2、change( ):用户改变域的内容 input, textarea, select

3、click( ):鼠标点击某个对象 几乎所有元素

4、dblclick( ):鼠标双击某个对象 几乎所有元素

5、error( ):当加载文档或图像时发生某个错误 window, img

6、focus( ):元素获得焦点 a, input, textarea, button, select, label, map, area

7、keydown( ):某个键盘的键被按下 几乎所有元素

8、keypress( ):某个键盘的键被按下或按住 几乎所有元素

9、keyup( ):某个键盘的键被松开 几乎所有元素

10、load( fn ):某个页面或图像被完成加载 window, img

11、mousedown( fn ):某个鼠标按键被按下 几乎所有元素

12、mousemove( fn ):鼠标被移动 几乎所有元素

13、mouseout( fn ):鼠标从某元素移开 几乎所有元素

14、mouseover( fn ):鼠标被移到某元素之上 几乎所有元素

15、mouseup( fn ):某个鼠标按键被松开 几乎所有元素

16、resize( fn ):窗口或框架被调整尺寸 window, iframe, frame

17、scroll( fn ):滚动文档的可视部分时 window

18、select( ):文本被选定 document, input, textarea

19、submit( ):提交按钮被点击 form

20、unload( fn ):用户退出页面 window

 

六、阻止冒泡和默认行为

  1、取消默认行为

    event.preventDefault():可以写成 return false;

  2、阻止冒泡

    event.stopPropagation():可以写成 return false;

 

四、动画与特效

1、show( ):显示隐藏的匹配元素。

2、show( speed, [callback] ):以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数。

3、hide( ):隐藏所有的匹配元素。

4、hide( speed, [callback] ):以优雅的动画隐藏所有匹配的元素,并在显示完成后可选地触发一个回调函数

5、toggle( ):切换元素的可见状态。如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

6、slideDown( speed, [callback] ) 通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以"滑动"的方式显示出来。

7、slideUp( speed, [callback] ):通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以"滑动"的方式隐藏起来。

8、slideToggle( speed, [callback] ):通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。 这个动画效果只调整元素的高度,可以使匹配的元素以"滑动"的方式隐藏或显示。

9、fadeIn( speed, [callback] ):通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。

10、fadeOut( speed, [callback] ):通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。

11、fadeTo( speed, opacity, [callback] ):把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。

12、stop( ):停止所有匹配元素当前正在运行的动画。如果有动画处于队列当中,他们就会立即开始。

13、queue( ):取得第一个匹配元素的动画序列的引用(返回一个内容为函数的数组)

14、queue( callback ):在每一个匹配元素的事件序列的末尾添加一个可执行函数,作为此元素的事件函数

15、queue( queue ):以一个新的动画序列代替所有匹配元素的原动画序列

16、dequeue( ):执行并移除动画序列前端的动画

17、animate( params, [duration], [easing], [callback] ):用于创建自定义动画的函数。

18、animate( params, options ):创建自定义动画的另一个方法。作用同上。

参数描述
styles

必需。规定产生动画效果的 CSS 样式和值。

可能的 CSS 样式值(提供实例):

注释:CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

speed

可选。规定动画的速度。默认是 "normal"。

可能的值:

  • 毫秒 (比如 1500)
  • "slow"
  • "normal"
  • "fast"
easing

可选。规定在不同的动画点中设置动画速度的 easing 函数。

内置的 easing 函数:

  • swing
  • linear

扩展插件中提供更多 easing 函数。

callback

可选。animate 函数执行完之后,要执行的函数。

如需学习更多有关 callback 的内容,请访问我们的 jQuery Callback 这一章。

语法二:$(selector).animate(styles,options)

例: $(this).addClass('on').children(".main-box").animate({$window_w},{duration:500,queue:false}, function(){ // 回调函数 });

参数描述
styles 必需。规定产生动画效果的 CSS 样式和值(同上)。
options

可选。规定动画的额外选项。

可能的值:

  • speed - 设置动画的速度
  • easing - 规定要使用的 easing 函数
  • callback - 规定动画完成之后要执行的函数
  • step - 规定动画的每一步完成之后要执行的函数
  • queue - 布尔值。指示是否在效果队列中放置动画。如果为 false,则动画将立即开始
  • specialEasing - 来自 styles 参数的一个或多个 CSS 属性的映射,以及它们的对应 easing 函数

 

 

五、查找与筛选

1、eq( index ):从匹配的元素集合中取得一个指定位置的元素,index从0开始

2、filter( expr ):返回与指定表达式匹配的元素集合,可以使用","号分割多个expr,用于实现多个条件筛选

  <ul><li class='ss'>aaa</li><li class='ss'>aaa</li><li>aaa</li></ul>

  $('li').filter('.ss').html();  // 返回 aaa 

3、filter( fn ):利用一个特殊的函数来作为筛选条件移除集合中不匹配的元素。

4、is( expr ):用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。  $("input[type='checkbox']").parent().is("form")

5、map( callback ):将jQuery对象中的一组元素利用callback方法转换其值,然后添加到一个jQuery数组中。

  var arr = [ "a", "b", "c", "d", "e" ];  var arr2 = jQuery.map(arr, function(n, i){ return (n.toUpperCase() + i);});     // 返回 arr2=['A', 'B', 'C', 'D', 'E']

6、not( expr ):从匹配的元素集合中删除与指定的表达式匹配的元素。

7、slice( start, [end] ):从匹配元素集合中取得一个子集,和内建的数组的slice方法相同。

8、add( expr ):把与表达式匹配的元素添加到jQuery对象中。    $(".games_name li").add(".rain").text("a"); // 追加标签,add(内不能为.rain li)因为不会遍历

9、children( [expr] ):取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合,不考虑后代元素。可选的过滤器将使这个方法只匹配符合的元素(只包括元素节点,不包括文本节点)。

10、contents( ):取得一个包含匹配的元素集合中每一个元素的所有子孙节点的集合(只包括元素节点,不包括文本节点),如果元素为iframe,则取得其中的文档元素

11、find( expr ):搜索所有与指定表达式匹配的元素。

12、next( [expr] ):取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。

13、nextAll( [expr] ):取得一个包含匹配的元素集合中每一个元素所有的后面同辈元素的元素集合

14、parent( [expr] ):取得一个包含着所有匹配元素的唯一父元素的元素集合。

15、parents( [expr] ):取得一个包含着所有匹配元素的唯一祖先元素的元素集合(不包含根元素)。

16、prev( [expr] ):取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。

17、prevAll( [expr] ):取得一个包含匹配的元素集合中每一个元素的之前所有同辈元素的元素集合。

18、siblings( [expr] ):取得一个包含匹配的元素集合中每一个元素的所有同辈元素的元素集合。

19、andSelf( ):将前一个匹配的元素集合添加到当前的集合中取得所有div元素和其中的p元素,添加border类属性。取得所有div元素中的p元素,添加background类属性

20、$("div").find("p").andSelf().addClass("border");

21、$("div").find("p").addClass("background");

22、end( ):结束当前的操作,回到当前操作的前一个操作找到所有p元素其中的span元素集合,然后返回p元素集合,添加css属性

23、$("p").find("span").end().css("border", "2px red solid");

24、$('元素名').hasClass('first'):检查当前元素是否含有特定的类,如果有返回true,与is()方法相同.

 

 

 

 

六、Ajax应用

一、传统的异步请求方式:

<script type="text/javascript">
    // 传统的Ajax加载数据
    var objXmlHttp = null;      // 声明一个变量

    function createXMLHTTP(){
        //根据浏览器的不同,返回该变量的实体对象
        if (window.ActiveXObject) {
            objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            if (window.XMLHttpRequest) {
                objXmlHttp = new XMLHttpRequest();
            }
            else {
                alert("初始化XMLHTTP错误!");
            }
        }
    }

    function getSendData(){
        document.getElementById("divTip").innerHTML = "<img alt='' src='images/loading.gif' />";    // 加载初始化
        // 设置发送地址变量并赋初始值
        var strSendUrl = "b.html?date" + Date();
        // 实例化XMLHttpRequest对象
        createXMLHTTP();
        objXmlHttp.open("GET", strSendUrl, true);
        objXmlHttp.onreadystatechange = function(){
            if(objXmlHttp.readyState == 4){ // 如果请求完成加载
                if(objXmlHttp.status == 200) {  // 如果响应已成功
                    // 显示数据
                    document.getElementById("divTip").innerHTML = objXmlHttp.responseText;
                }
            }
        }
        objXmlHttp.send(null);  // send发送设置请求
    }
</script>

加载异步数据:

二、load()方法加载

load(url,data,calback):url 被加载页面的地址   data 发送到服务器的数据格式为key/value  callback 表示加载成功后返回至加载页的回调函数

$(function(){
    $("#btn").click(function(){
        $("#divTip").load("b.html");
    })
})

三、getJSON()方法获取JSON数据并处理

load可以很快的加载数据到页面中,但获取数据进行处理时就比较麻烦,getJSON可以很好的处理

 

 

四、getScript()方法获取.js文件的内容

getScript(url, callback):url加载的js的路径,callback 加载成功后的执行的函数

<script type="text/javascript">
    $(function(){
        $("#Button1").click(function(){
            $.getScript("userinfo.js", function(){ alert("加载成功")});     // 打开已获取返回数据的文件
        })
    })
</script>


userinfo.js

var data = [ { "name":"陶国荣", "sex":"男", "email":"tao_guo_rong@163.com" }, { "name":"李建州", "sex":"女", "email":"jianzhou.li@163.com" } ] var strHTML = ""; // 初始化保存内容变量 $.each(data, function(){ strHTML += "姓名:" + this["name"] + "<br />"; strHTML += "性别:" + this["sex"] + "<br />"; strHTML += "邮箱:" + this["email"] + "<br />"; }) $("#divTip").html(strHTML);

五、$.get()方法JQ中异步加载XML文档

$.get(url, [data], callback, type):url表示待加载的数据地址   data表示发送到服务器的数据,格式为key/value   callback表示加载成功执行的回调函数   type可选项表示返回数据的格式,如html、xml、js、json、text等。

$(function(){
    $("#Button1").click(function(){
        $.get("UserInfo.xml", function(data){
            $("#divTip").empty();
            var strHTML = "";
            $(data).find("User").each(function(){
                var $strUser = $(this);
                strHTML += "姓名:" + $strUser.find("name").text() + "<br>";
                strHTML += "性别:" + $strUser.find("sex").text() + "<br>";
                strHTML += "邮箱:" + $strUser.find("email").text() + "<br>";
            })
            $("#divTip").html(strHTML);
        });
    })
})

XML:
<Info>
  <User id="1">
    <name>陶国荣</name>
    <sex>男</sex>
    <email>tao_guo_rong@163.com</email>
  </User>

  <User id="2">
    <name>李建洲</name>
    <sex>女</sex>
    <email>xiaoli@163.com</email>
  </User>
</Info>

请求服务器数据

六、$.get():除了加载数据之外,还可以实现请求

$("#Button1").click(function(){
// 打开文件,并通过回调函数返回服务器响应后的数据
$.get("userinfo.aspx", {name:encodeURI($("#txtName").val())}, function(data){
$("#divTip").empty().html(data);
})
})

七、$.post()请求数据

$.post():也是带参数向服务器发出数据请求,$post与$get在本质上没太大的区别,GET方式不适合传递较大的数据,同时请求的信息会保存在浏览器缓存中,而POST向服务器发送数据请求,不会出现这方面的不足

八、$.ajax(option):1、url:发送请求地址  2、type:数据请求方式(get或post)  3、data:发送到服务器的数据  4、dataType:服务器返回数据类型是,分为(html、script、text、xml、json)  5、success:请求完成后调用的回调函数

 

六、$.browser对象

一、属性

1、webkit:如果是webkit相关的浏览器则为true

2、mozilla:如果是Mozilla相关的浏览器则为true

3、safari:如果是safari相关的浏览器则为true

4、opera:如果是opera相关的浏览器则为true

5、msie:如果是IE相关的浏览器则为true

 

 

七、核心

一、核心函数

1、核心函数的形式

  $(parameter, [context]):接收一个字符串,用这个字符串去匹配一组元素,parameter用来查找的字符串,context为查找的DOM元素集,文档或jquery对象

  例:$(".first", $("#div)).addClass("indianred");

 

2、参数为XML或window对象 

  $(document).css("background","white");

 

3、参数为HTML代码

  $("<div class='test'><p>我是刚被添加的</p></div>").appendTo("#div");

 

 

二、对象访问

  1、获得长度

    获得长度就是获取匹配对象元素的个数,有两种方式来获取。1、length属性  2、size()

 

  2、获取其中某个对象

    获取对象的方法有两个:1、get()函数  2、index()函数

    get():可以带有一个参数或者不带参数,不带参数时返回一个DOM元素的集合,带参数时,表示匹配DOM元素集合中的索引.

 

  3、遍历对象集 each()

    each:以每一个匹配的元素作为上下文来执行一个函数

    $(".first").each(function(){

      $(this).toggleClass("test");

    })

 

三、数据缓存

  1、隐藏数据:input标签的type属性值为hidden时,页面看不到输入框,但是页面中可以使用其值

 

  2、设置和获取元素的缓存数据:data(name, val)

    作用:在元素上存放数据,同时也返回value,如果集合指向多个元素,将在所有元素上设置对应数据

 

  3、删除缓存数据

    removeData(name):在元素上移出存放的数据

 

四、数组与对象相关

  1、$.each(obj,  callback):遍历数组或对象操作。obj:需要遍历的对象或数组    callback(function):每个成员/元素执行的回调函数

var obj = {name:"aaa", age:"bbb", old:"ccc"};
$.each(obj, function(i, val){ // i:navm、age、old // val:aaa、bbb、ccc })

五、其它功能函数

  1、isFunction():用于测试给定对象是否为一个函数,

function stub(){
    var objs = [
        function (){},
        {x:15, y:20},
        null,
        "function"
    ]

    $.each(objs, function(i){
        var isFunc = $.isFunction(objs[i]);
        alert(isFunc);
    })
}

  2、trim():去除字符串头尾空格

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Traversing:
add(expr)
add(html)
add(elements)
children(expr)
contains(str)
end()
filter(expression)
filter(filter)
find(expr)
is(expr)
next(expr)
not(el)
not(expr)
not(elems)
parent(expr)
parents(expr)
prev(expr)
siblings(expr)

 

Core:
$(html).appendTo("body") 相当于在body中写了一段html代码
$(elems) 获得DOM上的某个元素
$(function(){……..}); 执行一个函数
$("div > p").css("border", "1px solid gray"); 查找所有div的子节点p,添加样式
$("input:radio", document.forms[0]) 在当前页面的第一个表单中查找所有的单选按钮
$.extend(prop) prop是一个jQuery对象,


举例:
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
jQuery( expression, [context] ) ---$( expression, [context]); 在默认情况下,$()查询的是当前HTML文档中的DOM元素。

each( callback ) 以每一个匹配的元素作为上下文来执行一个函数
举例:1
$("span").click(function){
$("li").each(function(){
$(this).toggleClass("example");
});
});


举例:2
$("button").click(function () {
$("div").each(function (index, domEle) {
// domEle == this
$(domEle).css("backgroundColor", "yellow");
if ($(this).is("#stop")) {
$("span").text("Stopped at div index #" + index);
return false;
}
});
});


jQuery Event:

ready(fn); $(document).ready()注意在body中没有onload事件,否则该函数不能执行。在每个页面中可以
有很多个函数被加载执行,按照fn的顺序来执行。
bind( type, [data], fn ) 为每一个匹配元素的特定事件(像click)绑定一个或多个事件处理器函数。可能的事件属性有:blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove,
mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress,
keyup, error
one( type, [data], fn ) 为每一个匹配元素的特定事件(像click)绑定一个或多个事件处理器函数。在每个对
象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。

trigger( type, [data] ) 在每一个匹配的元素上触发某类事件。
triggerHandler( type, [data] ) 这一特定方法会触发一个元素上特定的事件(指定一个事件类型),同时取消浏览器对此事件的默认行动
unbind( [type], [data] ) 反绑定,从每一个匹配的元素中删除绑定的事件。
$("p").unbind() 移除所有段落上的所有绑定的事件
$("p").unbind( "click" ) 移除所有段落上的click事件
hover( over, out ) over,out都是方法, 当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
$("p").hover(function(){
$(this).addClass("over");
},
function(){
$(this).addClass("out");
}
);

toggle( fn, fn ) 如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。
$("p").toggle(function(){
  $(this).addClass("selected");
},
function(){
  $(this).removeClass("selected");
}
);

 

 

 

JQuery Ajax 方法说明:

1、$.load( url, [data], [callback] ) 装入一个远程HTML内容到一个DOM结点。

$("#feeds").load("feeds.html");    //  将feeds.html文件载入到id为feeds的div中

$("#feeds").load("feeds.php", {limit: 25}, function(){
  alert("The last 25 entries in the feed have been loaded");
});

2、$.get( url, [data], [callback] ) 使用GET请求一个页面。

$.get("test.cgi", { name: "John", time: "2pm" }, function(data){
  alert("Data Loaded: " + data);
});

 

3、$.getJSON( url, [data], [callback] ) 使用GET请求JSON数据。
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});

 

4、$.getScript( url, [callback] ) 使用GET请求JavaScript文件并执行。
$.getScript("test.js", function(){
  alert("Script loaded and executed.");
});

5、$.post( url, [data], [callback], [type] ) 使用POST请求一个页面。

ajaxComplete( callback ) 当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件
$("#msg").ajaxComplete(function(request, settings){
$(this).append("<li>Request Complete.</li>");
});


6、ajaxError( callback ) 当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件
$("#msg").ajaxError(function(request, settings){
$(this).append("<li>Error requesting page " + settings.url + "</li>");
});

 

7、ajaxSend( callback ) 在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li<Starting request at " + settings.url
+ "</li<");
});

 

8、ajaxStart( callback ) 在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件
当AJAX请求开始(并还没有激活时)显示loading信息
$("#loading").ajaxStart(function(){
$(this).show();
});

 

9、ajaxStop( callback ) 当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件
当所有AJAX请求都停止时,隐藏loading信息。
$("#loading").ajaxStop(function(){
$(this).hide();
});

 

10、ajaxSuccess( callback ) 当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件
当AJAX请求成功完成时,显示信息。
$("#msg").ajaxSuccess(function(evt, request, settings){
$(this).append("<li>Successful Request!</li>");
});

 

11、$.ajaxSetup( options ) 为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。
设置默认的全局AJAX请求选项。
$.ajaxSetup({
  url: "/xmlhttp/",
  global: false,
  type: "POST"
});
$.ajax({ data: myData });

serialize( ) 以名称和值的方式连接一组input元素。实现了正确表单元素序列
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();

serializeArray( ) 连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。
从form中取得一组值,显示出来
function showValues() {
var fields = $(":input").serializeArray();
alert(fields);
$("#results").empty();
jQuery.each(fields, function(i, field){
$("#results").append(field.value + " ");
});
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();

 

 

 

 


JQuery CSS 方法说明

css( name ) 访问第一个匹配元素的样式属性。
css( properties ) 把一个"名/值对"对象设置为所有匹配元素的样式属性。
$("p").hover(function () {
$(this).css({ backgroundColor:"yellow", fontWeight:"bolder" });
}, function () {
var cssObj = {
backgroundColor: "#ddd",
fontWeight: "",
color: "rgb(0,40,244)"
}
$(this).css(cssObj);
});
css( name, value ) 在所有匹配的元素中,设置一个样式属性的值。
offset( ) 取得匹配的第一个元素相对于当前可视窗口的位置。返回的对象有2个属性,
top和left,属性值为整数。这个函数只能用于可见元素。
var p = $("p:last");
var offset = p.offset();
p.html( "left: " + offset.left + ", top: " + offset.top );
width( ) 取得当前第一匹配的元素的宽度值,
width( val ) 为每个匹配的元素设置指定的宽度值。
height( ) 取得当前第一匹配的元素的高度值,
height( val ) 为每个匹配的元素设置指定的高度值。

JQuery Utilities 方法说明
jQuery.browser
.msie 表示ie
jQuery.browser.version 读取用户浏览器的版本信息
jQuery.boxModel 检测用户浏览器针对当前页的显示是否基于W3C CSS的盒模型
jQuery.isFunction( obj ) 检测传递的参数是否为function
function stub() { }
var objs = [
function () {},
{ x:15, y:20 },
null,
stub,
"function"
];
jQuery.each(objs, function (i) {
var isFunc = jQuery.isFunction(objs[i]);
$("span:eq( " + i + ")").text(isFunc);
});
jQuery.trim( str ) 清除字符串两端的空格,使用正则表达式来清除给定字符两端的空格
jQuery.each( object, callback ) 一个通用的迭代器,可以用来无缝迭代对象和数组
jQuery.extend( target, object1, [objectN] ) 扩展一个对象,修改原来的对象并返回,这是一个强大的实现继承的
工具,这种继承是采用传值的方法来实现的,而不是JavaScript中的
原型链方式。
合并settings和options对象,返回修改后的settings对象
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);

合并defaults和options对象,defaults对象并没有被修改。options对象中的值
代替了defaults对象的值传递给了empty。

var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = $.extend(empty, defaults, options);
jQuery.grep( array, callback, [invert] ) 通过一个筛选函数来去除数组中的项
$.grep( [0,1,2], function(n,i){
return n > 0;
});
jQuery.makeArray( obj ) 将一个类似数组的对象转化为一个真正的数组
将选取的div元素集合转化为一个数组
var arr = jQuery.makeArray(document.getElementsByTagName_r("div"));
arr.reverse(); // use an Array method on list of dom elements
$(arr).appendTo(document.body);
jQuery.map( array, callback ) 使用某个方法修改一个数组中的项,然后返回一个新的数组
jQuery.inArray( value, array ) 返回value在数组中的位置,如果没有找到,则返回-1
jQuery.unique( array ) 删除数组中的所有重复元素,返回整理后的数组

; strHTML +=

$.each(obj, function(i, val){
// i为下标1、2、3、4、
// val为下标的值
})

原文地址:https://www.cnblogs.com/couxiaozi1983/p/2389073.html