jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.11 便捷方法

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

3.11 便捷方法

3.11.1 Sizzle.matches( expr, set )

便捷方法Sizzle.matches( expr, set )使用指定的选择器表达式expr对元素集合set进行过滤,并返回过滤结果。

该方法通过简单地调用函数Sizzle( selector, context, results, seed )来实现,调用时会将元素集合set作为参数seed传入。

相关代码如下所示:

4043 Sizzle.matches = function( expr, set ) {

4044     return Sizzle( expr, null, null, set );

4045 };

3.11.2 Sizzle.matchesSelector( node, expr )

便捷方法Sizzle.matchesSelector( node, expr )用于检查某个元素node是否匹配选择器表达式expr。

如果浏览器支持原生方法matchesSelector()、mozMatchesSelector()、webkitMatchesSelector()、msMatchesSelector()中的一种,则尝试调用原生方法检查元素与选择器表达式是否匹配;如果浏览器不支持原生方法,或者支持但是检查失败(抛出异常),则调用函数Sizzle( selector, context, results, seed ),检查其返回值的长度是否大于0,调用时会将元素node封装成数组作为参数seed传入。

相关代码如下所示:

4047 Sizzle.matchesSelector = function( node, expr ) {

4048     return Sizzle( expr, null, null, [node] ).length > 0;

4049 };

5095 (function(){

5096     var html = document.documentElement,

5097         matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;

5098

5099     if ( matches ) {

5100         // Check to see if it's possible to do matchesSelector

5101         // on a disconnected node (IE 9 fails this)

5102         var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),

5103             pseudoWorks = false;

5104

5105         try {

5106             // This should fail with an exception

5107             // Gecko does not error, returns false instead

5108             matches.call( document.documentElement, "[test!='']:sizzle" );

5109    

5110         } catch( pseudoError ) {

5111             pseudoWorks = true;

5112         }

5113

5114         Sizzle.matchesSelector = function( node, expr ) {

5115             // Make sure that attribute selectors are quoted

5116             expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");

5117

5118             if ( !Sizzle.isXML( node ) ) {

5119                 try {

5120                     if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {

5121                         var ret = matches.call( node, expr );

5122

5123                         // IE 9's matchesSelector returns false on disconnected nodes

5124                         if ( ret || !disconnectedMatch ||

5125                                 // As well, disconnected nodes are said to be in a document

5126                                 // fragment in IE 9, so check for that

5127                                 node.document && node.document.nodeType !== 11 ) {

5128                             return ret;

5129                         }

5130                     }

5131                 } catch(e) {}

5132             }

5133

5134             return Sizzle(expr, null, null, [node]).length > 0;

5135         };

5136     }

5137 })();

相关文章
|
6月前
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到架构设计借鉴
Tomcat 架构原理解析到架构设计借鉴
142 0
|
存储 Web App开发 JSON
JavaScript将csv转为json的解决方案(1):jQuery-csv解析csv数据
JavaScript将csv转为json的解决方案(1):jQuery-csv解析csv数据
292 0
|
SQL 安全 网络安全
交易所开发测试版丨交易所系统开发规则玩法/架构设计/项目步骤/方案逻辑/案例解析/源码部署
The development process of the exchange system involves multiple steps and links. The following is the detailed process and steps for the development of the exchange system:
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
352 37
|
25天前
|
消息中间件 运维 数据库
架构设计之解析CQRS架构模式!
架构设计之解析CQRS架构模式!
架构设计之解析CQRS架构模式!
|
6月前
|
Dubbo Java 应用服务中间件
阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo
软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。
|
5月前
|
JavaScript 前端开发
jQuery 常用函数解析
jQuery 常用函数解析
|
6月前
|
JavaScript 前端开发 UED
|
12月前
|
JSON 数据格式
jQuery+ajax解析json数据渲染
jQuery+ajax解析json数据渲染
51 0
|
架构师 关系型数据库 程序员
空手撸SOLID架构设计原则,六大原则层层解析,你绝想不到
设计原则概述 通常来说,要想构建—个好的软件系统,应该从写整洁的代码开始做起。毕竟,如果建筑所使用的砖头质量不佳,那么架构所能起到的作用也会很有限。反之亦然,如果建筑的架构设计不佳,那么其所用的砖头质量再好也没有用。这就是SOLID设计原则所要解决的问题。
71 0

推荐镜像

更多