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 相关文章推荐
jquery 页面滚动到指定DIV实现代码
Sep 25 Javascript
js 获取时间间隔实现代码
May 12 Javascript
jQuery Ajax()方法使用指南
Nov 19 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
Vue数据驱动模拟实现4
Jan 12 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
Feb 21 Javascript
vue使用Font Awesome的方法步骤
Feb 26 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
利用H5api实现时钟的绘制(javascript)
Sep 13 Javascript
vue实现表格合并功能
Dec 01 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
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 开发环境配置(Zend Studio)
2010/04/28 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
python使用opencv读取图片的实例
2017/08/17 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
python如何实现复制目录到指定目录
2020/02/13 Python
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
资深地理教师自我评价
2013/09/21 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
初一新生军训方案
2014/05/22 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
Python使用Web框架Flask开发项目
2022/06/01 Python