网易快速的javascript选择器:NES
jopen
11年前
NES 是网易公司的小型 JS 选择器,高伸缩性,高性能。
1. API
标准API有:
分别对应JS selector level 2的 querySelector、 querySelectorAll 与 matches (暂时浏览器还不支持)
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)