網易快速的javascript選擇器:NES

jopen 11年前發布 | 16K 次閱讀 NES JavaScript開發

NES 是網易公司的小型 JS 選擇器,高伸縮性,高性能。

1. API

標準API有:

  1. one
  2. all
  3. matches

分別對應JS selector level 2querySelectorquerySelectorAllmatches (暫時瀏覽器還不支持)

1.1 nes.one(selector[, context])

返回 第一個匹配selector(在context的subtree中)的元素

1.2 nes.all(selector[, context])

返回 所有滿足selector(在context的subtree中)的元素, 并按文檔順序排好

Arguments

  • selector - 滿足css選擇器語法的字符串
  • context(optional) - context限定節點查找的范圍(缺省為document)

Example

nes.all("tr:nth-child(even) > td:nth-child(odd)") //-> 取得所有偶數列中奇數行

1.3 nes.matches(node, selector)

判斷節點node是否滿足特定的選擇器selector

Arguments

  • node - 目標節點
  • selector - 滿足css選擇器語法的字符串

Example

如利用事件代理時,你不需要再去調用標準dom方法去測試節點是否滿足某種條件,直接使用matches進行判斷

container.addEventListener("click", function(e){
        if(nes.matches(e.target, ".signup a.top")){//直接利用選擇器判斷是否是注冊表單下的置頂按鈕
            //_onTop() ==> 處理邏輯
        }
    }
},false)

項目主頁:http://www.baiduhome.net/lib/view/home/1371188037117

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!