jQuery工具函数

如果jQuery库中不支持$.browser属性,就在jQuery中添加如下代码:

; (function (jQuery) {
            jQuery.extend({
                browser: function () {
                    var
                        rwebkit = /(webkit)\/([\w.]+)/,
                        ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
                        rmsie = /(msie) ([\w.]+)/,
                        rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
                        browser = {},
                        ua = window.navigator.userAgent,
                        browserMatch = uaMatch(ua, rwebkit, ropera, rmsie, rmozilla);
                    if (browserMatch.browser) {
                        browser[browserMatch.browser] = true;
                        browser.msie = browserMatch.browser;
                        browser.version = browserMatch.version;
                    }
                    return { browser: browser };
                }
            });

            function uaMatch(ua, rwebkit, ropera, rmsie, rmozilla) {
                ua = ua.toLowerCase();
                var match = rwebkit.exec(ua)
                    || ropera.exec(ua)
                    || rmsie.exec(ua)
                    || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)
                    || [];

                return {
                    browser: match[1] || "",
                    version: match[2] || "0"
                };
            }
        })($);

字符串操作

在 jQuery 中,字符串的工具函数只有一个,就是去除字符串左右空格的工具函数:$.trim()。

//$.trim()去掉字符串两边空格
var str = ' jQuery '; alert(str);
alert($.trim(str));

数组和对象操作

$.each遍历数组
在这里插入图片描述
$.each遍历对象
在这里插入图片描述
$.each遍历dom对象
在这里插入图片描述
$.grep()数据筛选(注意:只能筛选数据!
在这里插入图片描述
$.map()数据筛选和修改
在这里插入图片描述
$.inArray()获取查找到元素的下标

在这里插入图片描述
注意:$.inArray()的下标从 0 开始计算。

$.merge()合并两个数组
在这里插入图片描述
$.unique()删除重复的 DOM 元素
在这里插入图片描述

$.toArray()合并多个 DOM 元素组成数组

alert($('li').toArray());

测试操作

测试工具函数

在这里插入图片描述

$.isFunction(obj)

在这里插入图片描述

$.contains(原生父节点对象,原生子节点的对象)

console.log($.contains($(".pdv")[0], $(".box")[0]));

URL 操作

URL 地址操作,在之前的 Ajax 章节其实已经讲到过。只有一个方法:$.param(),将对象的键值对转化为 URL 键值对字符串形式。

测试:
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=jd&rsv_pq=9ac6cbf60004da89&rsv_t=ec63KTMwhjSr5OD6goISKYcxMD8r%2BqKTk3yv5BcLWfvs3l6NeyC3tIRSLJE&rqlang=cn&rsv_enter=1&rsv_sug3=3&rsv_sug1=2&rsv_sug7=101&rsv_sug2=0&inputT=274&rsv_sug4=983
在这里插入图片描述
原生js中的window.locaiton可以获取以上的信息!
$.param()将对象键值对转换为 URL 字符串键值对
在这里插入图片描述

浏览器检测

$.browser 对象属性

在这里插入图片描述

$.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。

猜你喜欢

转载自blog.csdn.net/knowledge_bird/article/details/87913046
今日推荐