jQuery 知识点(六) —— jQuery 工具函数和全局属性

来源:互联网 发布:轩辕剑纹身进阶数据 编辑:程序博客网 时间:2024/06/08 17:22

一、类型判断函数

var obj = { name : "car"};$.type(obj);//jQuery 对象类型判断函数console.log($.type(obj));// 返回 objectconsole.log($.type(null));// 返回 nullconsole.log($.type([]));// 返回 array$.isEmptyObject("");//检查一个对象是否包含属性,不包含返回 trueconsole.log($.isEmptyObject(""));// 返回 trueconsole.log($.isEmptyObject({}));//返回 trueconsole.log($.isEmptyObject(obj));//返回 false$.isPlainObject(obj);//检查一个对象是否包含属性,只有当该对象为 Object 类型并且包含属性时返回 true$.isFunction(obj);// false 检查对象是否为一个函数

二、数组处理函数

var objArray = $.markArray(obj);//将对象转换为数组console.log($.isArray(objArray));// true 判断一个对象类型是否为数组console.log(objArray);//var nums = [1,2,3,1];var names = ["Peter","Jim"];console.log($.merge(nums,names));//[1,2,3,1,"Peter","Jim"] 数组合并console.log($.unique(nums));//清除数组中重复的元素console.log($.inArray(1,nums));//true 判断元素是否在数组中$.each(nums,function(index,value){//数组遍历    value = value * 2;    console.log("索引 "+index+" 的新值为:" + value);});console.log(nums);var newArray = $.map(nums,function(value,index)){      return value*2+7;}//数组处理,注意处理函数第一个参数为当前元素的值,第二个参数才是索引console.log(newArray);$.grep(newArray,function(n,index){    return n > 2;});//数组筛选 $.grep(array,callback);console.log($.inArray(18,nums));// 确定第一个参数在数组中的位置,没有找到返回 -1console.log($("p"));// 把jQuery集合中所有DOM元素恢复成一个数组$.when($.ajax("test.php")).then(function(){    console.log("执行完 when 执行 then");});// 提供一种方法来执行一个或多个对象的回调函数,延迟对象通常表示异步事件
三、网络异步请求相关函数
var ajaxApp = {    log:function(fn){ console.log("global Ajax " + fn.name);};    complete:this.log("complete"),    error:this.log("error"),    send:this.log("send"),    start:this.log("start"),    stop:this.log("stop"),    success:this.log("success")}$.ajaxSetup(options) // 设置全局的 AJAX 属性$.ajaxComplete(ajaxApp.complete); // 设置全局 AJAX 请求完成回调函数,callback(event,request,settins)$.ajaxError(ajaxApp.error);// 设置全局的 AJAX 错误处理函数,callback(event,XHR,settings,thrownError)$.ajaxSend(ajaxApp.send);// 设置全局的 AJAX 请求前执行的函数$.ajaxStart(ajaxApp.start);// 设置全局的 AJAX 请求开始执行的函数$.ajaxStop(ajaxApp.stop);// 设置全局 AJAX 请求结束时执行的函数$.ajaxSuccess(ajaxApp.success); // 设置全局 AJAX 请求成功时执行的函数$.ajax({    type:"GET", // 请求的 HTTP 方法    dataType:"json", // 数据类型    error:universalGoofupFunction //全局的异常处理函数 });/** $.post(url,parameters,callback,type) : 以 POST 方式发送一个AJAX请求* @param url 请求资源的 URL* @param parameters 请求的数据参数* @param callback 请求成功的回调函数* @param type 希望服务器返回的数据类型* //** $.get(url,parameters,callback,type) : 以 GET 方式发送一个 AJAX 请求* @param url 请求资源的 URL* @param parameters 请求的数据参数* @param callback 请求成功的回调函数* @param type 希望服务器返回的数据类型* return XHR* //** $(selector).load(url,[data],[success(response,status,XHR)])* @param url 请求的URL* @param [data] 提交给服务器的数据* @param [success(response,status,XHR)] 请求成功时执行的回调函数,参数为响应的数据,HTTP 状态码和 XMLHttpRequest 对象* //** $.getJSON(url,parameters,callback) :以JSON数据格式向服务器请求数据* @param url 请求的URL* @param data 发送的键值对参数* @param callback 执行回调函数* return  XHR*//** $.getScript(url,callback) : 从服务器请求js脚步* @param url 请求的URL* @param callback 执行的回调函数* return XHR*/
四、数据处理相关函数
console.log($.parseJSON("{}"));//将字符串转换为 json consoel.log($.parseXML("<xml></xml>"));//将字符串转换 xml DOM 对象console.log($.isXMLDoc());//检查一个 DOM 节点是否为一个 XML 文档console.log($("form").serialize());//序列化表单内容为字符串console.log($("form").serializeArray());//序列化表单为数值
五、DOM 相关工具函数
//$.contains(container,child)$.contains($("head")[0],$("title")[0]); //检查一个 DOM 节点是否是另一个节点的子节点,第一个参数为容器节点,第二个参数为子节点
六、其他工具函数和属性
$.fx.off = true;// 关闭页面上所有的动画$.fx.interval = 100;// 设置动画的显示帧速console.log($.fx.off);//console.log($.fx.interval);//console.log($.now());//获取当前时间console.log($.isWindow(window));//用于区分 iframe 和 windowconsole.log($.support);//用于检查浏览器支持情况var person = {name:"Peter"};console.log($.extend(person,{"name":"Tom"},{"age":18}));// 用一个或多个其他对象来扩展一个对象,返回被扩展的对象 console.log($.noop);//$.noop 指向一个空函数console.log($.trim(" 我是中国人    "));//删除字符串起始和结尾的空格console.log($.param({"name":"Tom","age":19}));// 将对象序列化jQuery.error("message");//直接抛出一个包含该字符串的异常$.globalEval("var x=0;");//在全局上下文中执行js代码console.log($.fn.jquery);// 代表 jQuery 版本号的字符串
七、$.Callbacks() 委托链
var foo = function(val){    console.log("foo:"+val);}var bar = function(val){    console.log("bar:"+val);}var callbacks = $.Callbacks();callbacks.add(foo);//加入回调函数或委托callbacks.fire("Hello");//触发委托链,传入参数 Hello// 输出结果// foo:Hellocallbacks.add(bar);callbacks.fire("world!");//触发委托链,传入参数 world! // 输出结果// foo:world// bar:worldcallbacks.fireWith(window, ['function','action']);//在给定上下文中执行数组//foo:function//bar:functioncallbacks.disable();//禁止触发委托链console.log(callbacks.disabled());// true  是否已经被禁止callbacks.fire("world2");//触发委托链,传入参数 world! callbacks.empty();//清空委托链console.log(callbacks.fired());// ture 确定委托链至少被调用过一次console.log(callbacks.has(foo));// false empty方法刚被调用  确定委托链中有 foo 函数callbacks.lock();//锁定委托链,所有函数都不能触发console.log(callbacks.lock());callbacks.disable(false);console.log("disabled ?:"+callbacks.disabled());// true  是否已经被禁止callbacks.add(foo);callbacks.add(bar);callbacks.add(foo);console.log(callbacks);callbacks.remove(foo,bar);//删除一个或多个委托var flags = "once memory unique stopOnFlse";//一个用空格标记分隔的标志可选列表// once: 确保这个回调列表只执行一次(像一个递延 Deferred). // memory: 保持以前的值和将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred). // unique: 确保一次只能添加一个回调(所以有没有在列表中的重复). // stopOnFalse: 当一个回调返回false 时中断调用 // 默认情况下,回调列表将像事件的回调列表中可以多次触发。callbacks = $.Callbacks(flags);//带复杂参数的委托链
0 0
原创粉丝点击