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打印iframe内容示例代码
Aug 20 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
angularjs实现多张图片上传并预览功能
Feb 24 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
angular4+百分比进度显示插件用法示例
May 05 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php HandlerSocket的使用
2011/05/02 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
python3中bytes和string之间的互相转换
2017/02/09 Python
Python面向对象类的继承实例详解
2018/06/27 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
python里运用私有属性和方法总结
2019/07/08 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
delegate与普通函数的区别
2014/01/22 面试题
售后服务承诺书范文
2014/03/26 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
岗位聘任报告
2015/03/02 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
校长新学期致辞
2015/07/30 职场文书