jQuery源码解读之hasClass()方法分析


Posted in Javascript onFebruary 20, 2015

本文较为详细的分析了jQuery源码解读之hasClass()方法。分享给大家供大家参考。具体分析如下:

jQuery.fn.extend({

    hasClass: function( selector ) {

//将要检查的类名selector赋值给className, l为选择器选择的当前要检查的jQuery对象数组的长度。

        var className = " " + selector + " ",

            i = 0,

            l = this.length;

//循环检查每一个DOM元素的类名

        for ( ; i < l; i++ ) {

//this[i].nodeType === 1,判断当前DOM节点的节点类型,1表示元素节点。

//this[i].className,获取当前DOM节点已经存在的类名。

//rclass = /[\t\r\n\f]/g,replace(rclass, " ")表示移除当前DOM节点类名里的制表符,换行符,回车符等。

//indexOf(className),开始在当前DOM节点的类名里检索是否有你要检查的类名className,如果>=0,表示存在,返回true,跳出函数。

            if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {

                return true;

            }

        }

//循环检查完了,发现每一个DOM元素里都没有找到你要检查的类名,则返回false,跳出函数。

//可见,只要你的jQuery对象数组里,发现有一个DOM元素的类名里包含你要查找的类名,则返回true,跳出函数。

        return false;

    }

});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 读取图片文件的大小
Jun 25 Javascript
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 Javascript
JavaScript队列、优先队列与循环队列
Nov 14 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 #Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 #Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 #Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 #Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 #Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 #Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 #Javascript
You might like
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP中cookies使用指南
2007/03/16 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python实现的Iou与Giou代码
2020/01/18 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python不同系统中打开方法
2020/06/23 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
pycharm导入源码的具体步骤
2020/08/04 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
城管年度个人总结
2015/02/28 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL