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 拾漏补遗
Dec 27 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
JS 日期比较大小的简单实例
Jan 13 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
js实现密码强度检测【附示例】
Mar 30 Javascript
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
浅谈JS函数节流防抖
Oct 18 Javascript
vue脚手架中配置Sass的方法
Jan 04 Javascript
详解angular应用容器化部署
Aug 14 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
在vue中使用jsonp进行跨域请求接口操作
Oct 29 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&amp;mysql(六)
2006/10/09 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
Python3中列表list合并的四种方法
2019/04/19 Python
python远程邮件控制电脑升级版
2019/05/23 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
投标服务承诺书
2014/05/28 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
2015年助残日活动总结
2015/03/27 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
分享python函数常见关键字
2022/04/26 Python