网易快速的javascript选择器:NES

jopen 11年前

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.open-open.com/lib/view/home/1371188037117