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 相关文章推荐
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
页面定时刷新(1秒刷新一次)
Nov 22 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
javascript事件模型实例分析
Jan 30 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
Vue.js系列之项目搭建(1)
Jan 03 Javascript
微信小程序 图片上传实例详解
May 05 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
详解javascript replace高级用法
Feb 17 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
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
php中的观察者模式简单实例
2015/01/20 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python中partial()基础用法说明
2018/12/30 Python
详解python中的index函数用法
2019/08/06 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
运动会邀请函范文
2014/02/06 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
服务整改报告
2014/11/06 职场文书
商务考察邀请函模板
2015/02/02 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
高二语文教学反思
2016/02/16 职场文书