国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery選擇器源碼解讀(七):elementMatcher函數

2024-05-06 16:17:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery選擇器源碼解讀(七):elementMatcher函數,本文講解了源碼、功能、參數、返回函數 等內容,需要的朋友可以參考下
 

要讀懂Sizzle的Compile執行過程,首先需要弄清楚涉及的各個子程序的功能和關鍵變量和作用,我將逐一對jQuery-1.10.2版本的Compile代碼進行說明,望能給予大家幫助。

elementMatcher(matchers)

1、源碼

復制代碼代碼如下:

function elementMatcher(matchers) {
 return matchers.length > 1 ? function(elem, context, xml) {
  var i = matchers.length;
  while (i--) {
   if (!matchers[i](elem, context, xml)) {
    return false;
   }
  }
  return true;
 } : matchers[0];
}

 

2、功能

該函數返回一個函數,用來判定傳入的elem是否符合匹配執行函數數組matchers,若不滿足返回false,否則返回true。

若matchers僅有一個元素,則返回該元素本身,否則返回一個新函數——即代碼中的function(elem, context, xml)函數。

返回函數效果有點類似于context.filter(selectors),當然,其結果僅僅返回true或false,而非jQuery對象。

3、參數
matchers——數組,每個元素都是非偽類的匹配器執行函數。例如:在實際執行過程中,div.map span:lt(10),其中div和,map的匹配執行函數就會作為matchers的兩個元素傳入elementMatcher函數來過濾span節點的父節點是否滿足要求。

4、返回函數

4.1 若matchers多于1個元素,則返回如下函數:

復制代碼代碼如下:

function(elem, context, xml) {
 var i = matchers.length;
 while (i--) {
  if (!matchers[i](elem, context, xml)) {
   return false;
  }
 }
 return true;
}

 

4.1.1 功能
從matchers最后一個元素到第一個元素依次調用,以匹配傳入的elem節點是否滿足要求,全部滿足返回true,否則返回false。

4.1.2 參數

elem——待檢查的單個節點元素。

context——執行整個選擇器字符串匹配的上下文節點,大部分時候是沒有用途。

xml——當前搜索對象是HTML還是XML文檔,若是HTML,則xml參數為false。

4.2 若matchers只有1個元素,則返回該元素本身。
4.2.1 功能
檢查傳入的elem是否與選擇器匹配,若匹配返回true,否則返回false。

4.2.2 參數
同4.1.2參數說明。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 措美县| 郎溪县| 无棣县| 平度市| 麻阳| 达孜县| 客服| 湘阴县| 响水县| 天水市| 宁南县| 江山市| 云梦县| 玛沁县| 朝阳区| 万宁市| 临沧市| 温州市| 张家界市| 读书| 乌拉特前旗| 东辽县| 扎赉特旗| 南汇区| 刚察县| 乐昌市| 易门县| 清流县| 巴中市| 科尔| 曲沃县| 嘉荫县| 靖安县| 云安县| 潮安县| 济阳县| 团风县| 工布江达县| 海口市| 威信县| 新龙县|