首页 > 其他分享 >jQuery工具函数

jQuery工具函数

时间:2023-04-23 11:07:11浏览次数:46  
标签:jQuery 浏览器 函数 对象 alert var obj 工具 true


学习要点:

1.字符串操作

2.数组和对象操作

3.测试操作

4.URL 操作

5.浏览器检测

6.其他操作

工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性 的函数。它的作用主要是提供比如字符串、数组、对象等操作方面的遍历。

 

一.字符串操作

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

$.trim()。

//$.trim()去掉字符串两边空格

var str = '                                              jQuery                                                ';

alert(str);

alert($.trim(str));

 

二.数组和对象操作

jQuery 为处理数组和对象提供了一些工具函数,这些函数可以便利的给数组或对象进行 遍历、筛选、搜索等操作。

//$.each()遍历数组

var arr = ['张三', '李四', '王五', '马六'];

$.each(arr, function (index, value) {

$('#box').html($('#box').html() + index + '.' + value + '<br />');

});

 

//$.each()遍历对象

$.each($.ajax(), function (name, fn) {

$('#box').html($('#box').html() + name + '.' + '<br /><br />');

})

注意:$.each()中 index 表示数组元素的编号,默认从 0 开始。

 

//$.grep()数据筛选

var arr = [5,2,9,4,11,57,89,1,23,8];



var arrGrep = $.grep(arr, function (element, index) {

return element < 6 && index < 5;

});

alert(arrGrep);

 

注意:$.grep()方法的 index 是从 0 开始计算的。

 

//$.map()修改数据

var arr = [5,2,9,4,11,57,89,1,23,8];

var arrMap = $.map(arr, function (element, index) {

if (element < 6 && index < 5) {

return element + 1;

}

});

alert(arrMap);

 

//$.inArray()获取查找到元素的下标

var arr = [5,2,9,4,11,57,89,1,23,8]; var arrInArray =$.inArray(1, arr); alert(arrInArray);

 

注意:$.inArray()的下标从 0 开始计算。

 

//$.merge()合并两个数组

var arr = [5,2,9,4,11,57,89,1,23,8]; var arr2 =[23,2,89,3,6,7]; alert($.merge(arr, arr2));

 

//$.unique()删除重复的 DOM 元素

<div></div>

<div></div>

<div class="box"></div>

<div class="box"></div>

<div class="box"></div>

<div></div>

 

 

var divs = $('div').get();

divs = divs.concat($('.box').get());

alert($(divs).size());

$.unique(divs);

alert($(divs).size());

 

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

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



 

 

三.测试操作

在 jQuery 中,数据有着各种类型和状态。有时,我们希望能通过判断数据的类型和状 态做相应的操作。jQuery 提供了五组测试用的工具函数。

 

测试工具函数

 

函数名

说明

$.isArray(obj)

判断是否为数组对象,是返回 true

$.isFunction(obj)

判断是否为函数,是返回 true

$.isEmptyObject(obj)

判断是否为空对象,是返回 true

$.isPlainObjet(obj)

判断是否为纯粹对象,是返回 true

$.contains(obj)

判断 DOM 节点是否含另一个 DOM 节点,是返回 true

$.type(data)

判断数据类型

$.isNumeric(data)

判断数据是否为数值

$.isWindow(data)

判断数据是否为 window 对象

 

 

//判断是否为数组对象

var arr = [1,2,3];

alert($.isArray(arr));

 

//判断是否为函数

var fn = function () {};

alert($.isFunction(fn));

 

//判断是否为空对象 var obj = {}alert($.isEmptyObject(obj));

 

//判断是否由{}或 new Object()创造出的对象

var obj = window;

alert($.isPlainObject(obj));

 

 

注意:如果使用 new Object('name');传递参数后,返回类型已不是 Object,而是字符串, 所以就不是纯粹的原始对象了。

 

//判断第一个 DOM 节点是否含有第二个 DOM 节点

alert($.contains($('#box').get(0), $('#pox').get(0)));

 

//$.type()检测数据类型

alert($.type(window));

 

//$.isNumeric 检测数据是否为数值



alert($.isNumeric(5.25));

 

//$.isWindow 检测数据对象是否为 window 对象

alert($.isWindow(window));

 

四.URL 操作

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

//$.param()将对象键值对转换为 URL 字符串键值对

var obj = {

name : 'Lee', age : 100

};

alert($.param(obj));

 

五.浏览器检测

由于在早期的浏览器中,分 IE 和 W3C 浏览器。而 IE678 使用的覆盖率还很高,所以, 早期的jQuery 提供了$.browser 工具对象。而现在的 jQuery 已经废弃删除了这个工具对象, 如果还想使用这个对象来获取浏览器版本型号的信息,可以使用兼容插件。

 

$.browser 对象属性

 

属性

说明

webkit

判断 webkit 浏览器,如果是则为 true

mozilla

判断 mozilla 浏览器,如果是则为 true

safari

判断 safari 浏览器,如果是则为 true

opera

判断 opera 浏览器,如果是则为 true

msie

判断 IE 浏览器,如果是则为 true

version

获取浏览器版本号

 

 

//获取火狐浏览器和版本号

alert($.browser.mozilla + ':' + $.browser.version);

 

注意:火狐采用的是 mozilla 引擎,一般就是指火狐;而谷歌 Chrome 采用的引擎是

webkit,一般验证 Chrome 就用 webkit。

 

还有一种浏览器检测,是对浏览器内容的检测。比如:W3C 的透明度为 opacity,而 IE

的透明度为 alpha。这个对象是$.support。

 

$.support 对象部分属性

 

属性名

说明

 

hrefNormalized

如果浏览器从 getAttribute("href")返回的是原封不

动的结果,则返回 true。在 IE 中会返回 false,因为他


 

的 URLs 已经常规化了

 

htmlSerialize

如果浏览器通过 innerHTML 插入链接元素的时候会序列

化这些链接,则返回 true,目前 IE 中返回 false

 

leadingWhitespace

如果在使用 innerHTML 的时候浏览器会保持前导空白字

符,则返回 true,目前在 IE 6-8 中返回 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

Ajax

如果浏览器支持 ajax 操作,返回 true

 

 

 

//$.support.ajax 判断是否能创建 ajax
alert($.support.ajax);
 
//$.support.opacity 设置不同浏览器的透明度
if ($.support.opacity == true) {
$('#box').css('opacity', '0.5');
} else {
$('#box').css('filter', 'alpha(opacity=50)');
}

 

 

注意:由于 jQuery 越来越放弃低端的浏览器,所以检测功能在未来使用频率也越来越 低。所以,$.brower 已被废弃删除,而$.support.boxModel 检测 W3C 或 IE 盒子也被删除。 并且http://api.jquery.com/jQuery.support/官网也不提供属性列表和解释,给出一个 Modernizr 第三方小工具来辅组检测。

 

六.其他操作

jQuery 提供了一个预备绑定函数上下文的工具函数:$.proxy()。这个方法,可以解决诸 如外部事件触发调用对象方法时 this 的指向问题。

//$.proxy()调整 this 指向
var obj = {
name : 'Lee',
test : function () {
 

alert(this.name);
}
};
 
 
$('#box').click(obj.test);                                    //指向的 this 为#box 元素
$('#box').click($.proxy(obj, 'test'));                    //指向的 this 为方法属于对象 box

标签:jQuery,浏览器,函数,对象,alert,var,obj,工具,true
From: https://blog.51cto.com/u_6784072/6216843

相关文章

  • range函数
    range内置函数,用于生成一系列连续的整数,一般用于for循环体中。不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。range(start,stop[,step])一个参数:i=range(10)......
  • 论文推荐:基于联合损失函数的多任务肿瘤分割
    以FFANet为主干,加入分类的分支,将模型扩展为多任务图像分割框架,设计了用于分类和分割的联合损失函数。FFANet+MTL完整文章:https://avoid.overfit.cn/post/6a605da56978443bb548e8f342cbda37......
  • 2023.3.2 jQuery 事件操作
    jQuery事件操作js中的$(function(){});和原生js中的window.onload=function(){}的区别?他们分别是在什么时候触发?jQuery的页面加载完成之后是浏览器的内核解析完页面的标签创建好DOM对象之后就会马上执行。原生js的页面加载完成之后,除了要等浏览器内核解......
  • Java虚拟机之JVM工具监控调优
    我是攻城师(woshigcs)前几篇我们学习了,JVM里面的运行结构,GC算法,以及各种垃圾收集器的优劣点,那么本篇我们来看下如何使用一些虚拟机性能监控工具,来监控和快速处理故障,当JVM出现一些故障时,我们通常从如下的几个方面进行着手分析,包括运行日志,异常堆栈,GC日志,线程快照(threaddump/javacor......
  • C语言函数大全-- o 开头的函数
    C语言函数大全本篇介绍C语言函数大全--o开头的函数1.obstack_init,obstack_free,obstack_alloc,obstack_blank,obstack_grow1.1函数说明函数声明函数功能voidobstack_init(structobstack*obstack_ptr);它是POSIX标准库中的一个非标准函数,用于初始化对象堆栈。对......
  • 13款监测工具使用
    Linux运维必备的13款实用工具,你都用过吗?运维网工 2023-04-2209:00 发表于重庆收录于合集#Linux运维工具2个#运维工程师119个#网络运维77个#运维工具78个#运维管理66个本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助。1、查看进程占用......
  • 推荐一款能将喜马拉雅转为本地音频的工具!
    很多时候我们会有需要将喜马拉雅转为本地音频的需求,也就是将喜马拉雅音频文件下载到电脑本地文件夹里,方便放到其他软件中进行播放。 这里介绍一款能够将喜马拉雅转为本地音频的工具,非常适合小白新手,使用非常的简单。  工具下载:windows版https://jscs.lanzouw.com/i6pPL......
  • Oracle apex社区教程 PLSQL常用时间函数
    摘自OracleAPEX社区www.sqlu.cnOracleAPEX中文社区|OracleAPEX资源|OracleAPEX学习|EBS开发|EBSINTERFACE|OracleEBS开发|Oracle数据库开发|EBSAPI 一,获得时间1.Sysdate当前日期和时间Selectsysdatefromdual;2.Last_day本月最后一天Selectlast_day(sysdate)......
  • RapidAPI —— mac 上最先进的 API 测试工具
    RapidAPIforMac是一个功能齐全的HTTP客户端,可让您测试和描述您构建或使用的API。它有一个漂亮的原生macOS界面来编写请求、检查服务器响应、生成客户端代码和导出API定义。官网:https://jenni.ai/......
  • Python time 库常用函数
    time模块中时间表现的格式主要有三种:timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量struct_time时间元组,共有九个元素组。formattime格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。使用time库前先用import导......