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 相关文章推荐
Dom与浏览器兼容性说明
Oct 25 Javascript
Jquery通过Ajax访问XML数据的小例子
Nov 18 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
layui 中select下拉change事件失效的解决方法
Sep 20 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 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自毁程序(慎用)
2015/07/09 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
validator验证控件使用代码
2010/11/23 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
python写的一个文本编辑器
2014/01/23 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
Python下简易的单例模式详解
2019/04/08 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
PyTorch中的Variable变量详解
2020/01/07 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
python regex库实例用法总结
2021/01/03 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
Hotels.com越南:酒店预订
2019/10/29 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
早会主持词
2014/03/17 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
无房证明范本
2014/09/17 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
终止合同协议书范本
2016/03/22 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang