js使用xpath

XPath的查询函数,在IE中与其余浏览器(Chrome、Firefox、Opear等)是不同的,因此若是你的网站须要兼容IE,须要注意。
Xpath在IE中的查询函数为 document.selectNodes(xpath),其返回的是一个集合,经过for循环就能够读取全部的元素。
var nodes=document.selectNodes("//a[@href]");
for (i=0;i // 对 nodes[i] 执行操做;
}

// 这里要注意,IE对于元素的默认索引序列是从0开始的,不符号W3C标准
// 添加下面这行代码,让其符合W3C标准node

document.setProperty("SelectionLanguage","XPath"); //设置语言选择
nodes=document.selectNodes("//div[1]");

而其余浏览器的查询函数,调用就稍微复杂一点,都是采用 document.evaluate 这个函数,返回的是一个枚举集合,须要使用 while 循环来枚举元素。浏览器

var result = document.evaluate("//a[@href]", document, null, XPathResult.ANY_TYPE, null);
var nodes = result.iterateNext(); //枚举第一个元素
while (nodes){
// 对 nodes 执行操做;
nodes=result.iterateNext(); //枚举下一个元素
}

// 若是只查找单个元素,能够简写成这样函数

nodes=document.evaluate("//div[1]", document).iterateNext();