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之大字符串的连接的StringBuffer 类
May 08 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
Nov 05 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
Jul 20 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
详谈jQuery中的一些正则匹配表达式
Mar 08 Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 Javascript
vue基于Element构建自定义树的示例代码
Sep 19 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 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实现二分查找算法代码分享
2011/06/24 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
PHP7多线程搭建教程
2017/04/21 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
详解Python中的变量及其命名和打印
2016/03/11 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
汽修专业学生自我鉴定
2013/11/16 职场文书
大学生思想汇报范文
2013/12/31 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS