选择器速度提升<br>选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多<br>Browser jQuery 1.1.2 jQuery 1.1.3 % Improvement <br>IE 6 4890ms 661ms 740% <br>Firefox 2 5629ms 567ms 993% <br>Safari 2 3575ms 475ms 753% <br>Opera 9.1 3196ms 326ms 980% <br>Average improvement: 867% <br><br>下表为jQuery1.1.3与常用的一些JS库选择器的对比:<br>Browser Prototype jQuery Mootools Ext Dojo <br>IE 6 1476ms 661ms 1238ms 672ms 738ms <br>Firefox 2 219ms 567ms 220ms 951ms 440ms <br>Safari 2 1568ms 475ms 909ms 417ms 527ms <br>Opera 9.1 220ms 326ms 217ms 296ms 220ms <br><br><br>更新项目<br><br><br>New Selectors<br>Unicode Selectors: This is a huge addition for those of you who want to use Unicode attribute values, IDs, class names, or tag names. You can now use them directly in jQuery selectors:<br><br>$("div.台北")<br>$("div#台北")<br>$("foo_bar台北")<br>$("div[@id=台北]")Escape Selectors: A frequently requested feature you can now select elements by ID (or other selector) that uses a special character, for example this will find the div that has the ID of “foo.bar”:<br><br>$("div#foo\\.bar")Inequality Selector: While this selector isn’t part of the CSS specification, it’s frequently used and included in other selector libraries, so we decided to add it in:<br><br>$("div[@id!=test]"):nth-child() improvements: This selector allows you to locate specific child elements. We’ve supported selectors like :nth-child(1) and :nth-child(odd) since the beginning of jQuery, now we’ve added advanced :nth-child selectors, such as:<br><br>$("div:nth-child(2n)")<br>$("div:nth-child(2n+1)")<br>$("div:nth-child(n)")Space-separated attributes: After being removed in jQuery 1.0, this selector has now been brought back by popular demand. It allows you to locate individual items in a space-separated attribute (such as a class or rel attribute).<br><br>$("a[@rel~=test]")Animation Improvements<br><br>参数: <br>options <br>返回值: <br>XMLHttpRequest <br>使用HTTP请求一个页面。<br>这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。<br>警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入) <br>$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。 <br>注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。 <br>$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。 <br>在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。 <br>参数选项: <br>async(true) 数据类型: Boolean <br>默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为false。注意,同步请求可能会暂时的锁定浏览器, 当请求激活时不能进行任何操作。 <br>beforeSend 数据类型: Function <br>一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。 XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax 事件。 function (XMLHttpRequest) {<br> this; // the options for this ajax request<br>}cache(true) 数据类型: Boolean <br>jQuery 1.2中新添加的参数, 如果设为false,则会强制浏览器不缓存请求的页面。 <br>complete 数据类型: Function <br>当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。 function (XMLHttpRequest, textStatus) {<br> this; // the options for this ajax request<br>}contentType("application/x-www-form-urlencoded") 数据类型: String <br>发送到服务器的数据的内容类型。默认是 "application/x-www-form-urlencoded", 适合大多数情况。 <br>data 数据类型: Object,String <br>要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。 数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。 例如 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。 <br>dataType( Intelligent Guess (xml or html)) 数据类型: String <br>期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将responseXML或responseText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有: "xml": 返回一个可以由jQuery处理的XML文档。 <br>"html": 返回文本格式的HTML代码。包括求值后的脚本标记。 <br>"script": 将响应作为Javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。 <br>"json": 将响应作为JSON求值,并返回一个Javascript对象。 <br>"jsonp": 使用JSONP载入一个JSON代码块. 会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持) <br>"text": 文本格式的字符串 <br>error 数据类型: Function <br>请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的化。 这是一个Ajax 事件。function (XMLHttpRequest, textStatus, errorThrown) {<br> // typically only one of textStatus or errorThrown <br> // will have info<br> this; // the options for this ajax request<br>}global(true) 数据类型: Boolean <br>是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。 <br>ifModified(false) 数据类型: Boolean <br>只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为false,即忽略对头部的检查 <br>jsonp 数据类型: String <br>在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。 <br>processData(true) 数据类型: Boolean <br>在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--"application/x-www-form-urlencoded"。如果想发送DOMDocuments,就要把这个选项设置为false。 <br>success 数据类型: Function <br>当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax 事件。 function (data, textStatus) {<br> // data could be xmlDoc, jsonObj, html, text, etc...<br> this; // the options for this ajax request<br>}timeout 数据类型: Number <br>如果通过$.ajaxSetup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。 <br>type("GET") 数据类型: String <br>请求的类型 ("POST" 或 "GET"), 默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。 <br>url(The current page) 数据类型: String <br>请求发送的目标URL地址 <br>username 数据类型: String <br>username可用于在响应一个HTTP连接时的认证请求。 实例 <br>载入并执行一个JavaScript文件。 <br>$.ajax({<br> type: "GET",<br> url: "test.js",<br> dataType: "script"<br>});保存数据到服务器,完成后通知用户。 <br> $.ajax({<br> type: "POST",<br> url: "some.php",<br> data: "name=John&location=Boston",<br> success: function(msg){<br> alert( "Data Saved: " + msg );<br> }<br> });取得一个HTML页面的最新版本。 <br>$.ajax({<br> url: "test.html",<br> cache: false,<br> success: function(html){<br> $("#results").append(html);<br> }<br>});同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。 <br> var html = $.ajax({<br> url: "some.php",<br> async: false<br> }).responseText;向服务器发送xml文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。 <br>var xmlDocument = [create xml document];<br> $.ajax({<br> url: "page.php",<br> processData: false,<br> data: xmlDocument,<br> success: handleResponse<br> });load( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址。 <br>params (Map): (可选)发送到服务端的键/值对参数。 <br>callback (Function): (可选) 当数据装入完成时执行的函数. function (responseText, textStatus, XMLHttpRequest) {<br> this; // dom element<br>}返回值: <br>jQuery <br>装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。 <br>实例 <br>载入文档的sidebar的导航部分到一个无序列表中。 <br>$("#links").load("/Main_Page #p-Getting-Started li");将feeds.html文件载入到id为feeds的div中。 <br>$("#feeds").load("feeds.html");同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。 <br> $("#feeds").load("feeds.php", {limit: 25}, function(){<br> alert("The last 25 entries in the feed have been loaded");<br> });jQuery.get( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当远程页面装入完成时执行的函数 function (data, textStatus) {<br> // data可以是xmlDoc, jsonObj, html, text, 等...<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求一个页面。 <br>这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 <br>实例 <br>请求test.php页,忽略返回值. <br>$.get("test.php");请求test.php页并发送附加数据(忽略返回值). <br>$.get("test.php", { name: "John", time: "2pm" } );显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值). <br>$.get("test.php", function(data){<br> alert("Data Loaded: " + data);<br>});显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值). <br>$.get("test.cgi", { name: "John", time: "2pm" },<br> function(data){<br> alert("Data Loaded: " + data);<br> });jQuery.getJSON( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data will be a jsonObj<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求JSON数据。 <br>在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback. <br>实例 <br>从Flickr JSONP API中载入最新的四幅猫的图片 <br>$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",<br> function(data){<br> $.each(data.items, function(i,item){<br> $("<img/>").attr("src", item.media.m).appendTo("#images");<br> if ( i == 3 ) return false;<br> });<br> });从test.js载入JSON数据, 从返回的JSON数据读取name值。 <br>$.getJSON("test.js", function(json){<br> alert("JSON Data: " + json.users[3].name);<br>});从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。 <br>$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){<br> alert("JSON Data: " + json.users[3].name);<br>});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值). <br>$.getIfModified("test.php", function(data){<br> alert("Data Loaded: " + data);<br>});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数. <br>$.getIfModified("test.php", { name: "John", time: "2pm" },<br> function(data){<br> alert("Data Loaded: " + data);<br> });列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。 <br>var id=$("#id").attr("value");<br> $.getJSON("pages.php",{id:id},dates);<br>function dates(datos)<br>{ <br> $("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"<br>"+"Address:"+datos[1].address);<br>}jQuery.getScript( url, [callback] )参数: <br>url (String): 装入页面的URL地址 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data应该是javascript<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求JavaScript文件并执行。 <br>在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。 <br>实例 <br>我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。 <br>$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){<br> $("#go").click(function(){<br> $(".block").animate( { backgroundColor: 'pink' }, 1000)<br> .animate( { backgroundColor: 'blue' }, 1000);<br> });<br>});载入test.js JavaScript文件并执行。 <br>$.getScript("test.js");载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。 <br>$.getScript("test.js", function(){<br> alert("Script loaded and executed.");<br>});jQuery.post( url, [data], [callback], [type] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data可能是 xmlDoc, jsonObj, html, text, 等...<br> this; // the options for this ajax request<br>}String $.postJSON = function(url, data, callback) {<br> $.post(url, data, callback, "json");<br>};返回值: <br>XMLHttpRequest <br>使用POST请求一个页面。 <br>这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 <br>ajaxComplete( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件 <br>实例 <br>当AJAX请求完成时显示一条信息。 <br>$("#msg").ajaxComplete(function(request, settings){<br> $(this).append("<li>Request Complete.</li>");<br> });ajaxError( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions, thrownError) {<br> // thrownError only passed if an error was caught<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求错误时显示一条信息。 <br> $("#msg").ajaxError(function(request, settings){<br> $(this).append("<li>Error requesting page " + settings.url + "</li>");<br> });ajaxSend( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求发出后显示一条信息。 <br> $("#msg").ajaxSend(function(evt, request, settings){<br> $(this).append("<li<Starting request at " + settings.url + "</li<");<br> });ajaxStart( callback )参数: <br>callback (Function): 要执行的函数 function () {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求开始(并还没有激活时)显示loading信息。 <br>$("#loading").ajaxStart(function(){<br> $(this).show();<br> });ajaxStop( callback )参数: <br>callback (Function): 要执行的函数 function () {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当所有AJAX请求都停止时,隐藏loading信息。 <br>$("#loading").ajaxStop(function(){<br> $(this).hide();<br> });ajaxSuccess( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件 <br>实例 <br>当AJAX请求成功完成时,显示信息。 <br> $("#msg").ajaxSuccess(function(evt, request, settings){<br> $(this).append("<li>Successful Request!</li>");<br> });jQuery.ajaxSetup( options )参数: <br>Options: 用于Ajax请求的键/值对 <br>为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。 <br>实例 <br>设置默认的全局AJAX请求选项。 <br>$.ajaxSetup({<br> url: "/xmlhttp/",<br> global: false,<br> type: "POST"<br>});<br>$.ajax({ data: myData });serialize( )返回值: <br>jQuery <br>以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2 。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。 <br>实例 <br>连接表单元素的一组查询字符串,可用于发送Ajax请求。 <br> function showValues() {<br> var str = $("form").serialize();<br> $("#results").text(str);<br> }<br><br> $(":checkbox, :radio").click(showValues);<br> $("select").change(showValues);<br> showValues();serializeArray( )返回值: <br>jQuery <br>连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。 <br>实例 <br>从form中取得一组值,显示出来 <br> function showValues() {<br> var fields = $(":input").serializeArray();<br> alert(fields);<br> $("#results").empty();<br> jQuery.each(fields, function(i, field){<br> $("#results").append(field.value + " ");<br> });<br> }<br><br> $(":checkbox, :radio").click(showValues);<br> $("select").change(showValues);<br> showValues();