JQuery學習9
jQuery.noop: 一个空函数
jQuery.proxy(function, scope):返回一个新函数,并且这个函数始终保持了特定的作用域
jQuery.proxy( scope, name ):第一个参数是要设定的作用域对象。第二个参数是将要设置作用域的函数名(必须是第一个作用域对象的一个属性)。
强制设置函数的作用域,让this指向obj而不是#test对象 HTML 代码: <div id="test">Click Here!</div>jQuery 代码: var obj = { name: "John", test: function() { alert( this.name ); $("#test").unbind("click", obj.test); } }; $("#test").click( jQuery.proxy( obj, "test" ) );//this 指向 obj // 以下代码跟上面那句是等价的: // $("#test").click( jQuery.proxy( obj.test, obj ) );//this 指向obj // 可以与单独执行下面这句做个比较。 // $("#test").click( obj.test ); //this 指向#test
jQuery.param(obj, [traditional]):将表单元素数组或者对象序列化。是.serialize()的核心方法, 默認是深度递归obj, 當traditional為true時, 則是淺度递归obj
按照key/value对序列化普通对象。 jQuery 代码: var params = { width:1680, height:1050 }; var str = jQuery.param(params); $("#results").text(str); 结果: width=1680&height=1050
深度递归與淺度递归:
var myObject = { a: { one: 1, two: 2, three: 3 }, b: [1,2,3] }; var recursiveEncoded = $.param(myObject); var recursiveDecoded = decodeURIComponent($.param(myObject)); alert(recursiveEncoded); alert(recursiveDecoded); //a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3 //a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3 var shallowEncoded = $.param(myObject, true); var shallowDecoded = decodeURIComponent(shallowEncoded); alert(shallowEncoded); alert(shallowDecoded); //a=%5Bobject+Object%5D&b=1&b=2&b=3 //a=[object+Object]&b=1&b=2&b=3
jQuery.contains(container, contained):一个DOM节点是否包含另一个DOM节点
jQuery.contains(document.documentElement, document.body); // true
jQuery.contains(document.body, document.documentElement); // false
jQuery.isEmptyObject(obj):测试对象是否是空对象(不包含任何属性)。
jQuery.isFunction(obj):测试对象是否为函数
jQuery.type(obj) 用于测试对象的類型
- jQuery.type(true) === "boolean"
- jQuery.type(3) === "number"
- jQuery.type("test") === "string"
- jQuery.type(function(){}) === "function"
- jQuery.type([]) === "array"
- jQuery.type(new Date()) === "date"
- jQuery.type(/test/) === "regexp"
jQuery.support:檢測瀏覽器的特性
jQuery.support主要包括以下测试:
boxModel: 如果这个页面和浏览器是以W3C CSS盒式模型来渲染的,则等于true。通常在IE 6和IE 7的怪癖模式中这个值是false。在document准备就绪前,这个值是null。
cssFloat: 如果用cssFloat来访问CSS的float的值,则返回true。目前在IE中会返回false,他用styleFloat代替。
hrefNormalized: 如果浏览器从getAttribute("href")返回的是原封不动的结果,则返回true。在IE中会返回false,因为他的URLs已经常规化了。
htmlSerialize: 如果浏览器通过innerHTML插入链接元素的时候会序列化这些链接,则返回true,目前IE中返回false。
leadingWhitespace: 如果在使用innerHTML的时候浏览器会保持前导空白字符,则返回true,目前在IE 6-8中返回false。
noCloneEvent: 如果浏览器在克隆元素的时候不会连同事件处理函数一起复制,则返回true,目前在IE中返回false。
objectAll: 如果在某个元素对象上执行getElementsByTagName("*")会返回所有子孙元素,则为true,目前在IE 7中为false。
opacity: 如果浏览器能适当解释透明度样式属性,则返回true,目前在IE中返回false,因为他用alpha滤镜代替。
scriptEval: 使用 appendChild/createTextNode 方法插入脚本代码时,浏览器是否执行脚本,目前在IE中返回false,IE使用 .text 方法插入脚本代码以执行。
style: 如果getAttribute("style")返回元素的行内样式,则为true。目前IE中为false,因为他用cssText代替。
tbody: 如果浏览器允许table元素不包含tbody元素,则返回true。目前在IE中会返回false,他会自动插入缺失的tbody

浙公网安备 33010602011771号