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标准

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();

你可能感兴趣的:(xpath,javascript)