Javascript 将document.evaluate()的xpathResult用作contextNode不起作用

Javascript 将document.evaluate()的xpathResult用作contextNode不起作用,javascript,Javascript,在使用document.evaluate时,我尝试再次将xpathResult用作与所附示例类似的contextNode,但没有成功,我错在哪里 const getAllLiButton=document.querySelector(“#get all li”); const getTitleAndTextButton=document.querySelector(“#获取标题文本”); addEventListener(“单击”,getAllLi); addEventListener(“单击

在使用document.evaluate时,我尝试再次将xpathResult用作与所附示例类似的contextNode,但没有成功,我错在哪里

const getAllLiButton=document.querySelector(“#get all li”);
const getTitleAndTextButton=document.querySelector(“#获取标题文本”);
addEventListener(“单击”,getAllLi);
addEventListener(“单击”,getTitleAndText);
函数getAllLi(){
var记录=[];
让topLevelResults=document.evaluate(“/html/body/ul/li”,document,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
var levelResult=topLevelResults.iterateNext();
while(levelResult){
记录。推送(levelResult);
levelResult=topLevelResults.iterateNext();
}
控制台日志(记录);
}
函数getTitleAndText(){
让topLevelResults=document.evaluate(“/html/body/ul/li”,document,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
var levelResult=topLevelResults.iterateNext();
让titleText=document.evaluate(“/h3”,levelResult,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
console.log(titleText);
让textBox=document.evaluate(“/span”,levelResult,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
console.log(文本框);
}
获取所有li(作品)
获取单个标题和文本(不适用)
  • 标题#1一些文本
  • 标题#2一些文本
  • 标题#3一些文本
  • 标题#4一些文本
  • 标题#5一些文本
如以下报告所述:

//h3xpathExpression对于指示查询应从上下文节点(levelResult)开始非常重要

const getAllLiButton=document.querySelector(“#get all li”);
const getTitleAndTextButton=document.querySelector(“#获取标题文本”);
addEventListener(“单击”,getAllLi);
addEventListener(“单击”,getTitleAndText);
函数getAllLi(){
var记录=[];
让topLevelResults=document.evaluate(“/html/body/ul/li”,document,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
var levelResult=topLevelResults.iterateNext();
while(levelResult){
记录。推送(levelResult);
levelResult=topLevelResults.iterateNext();
}
控制台日志(记录);
}
函数getTitleAndText(){
让topLevelResults=document.evaluate(“/html/body/ul/li”,document,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
var levelResult=topLevelResults.iterateNext();
让titleText=document.evaluate(“.//h3”,levelResult,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
titleText=titleText.iterateNext();
console.log(titleText.textContent);
让textBox=document.evaluate(“.//span”,levelResult,null,XPathResult.ORDERED\u NODE\u ITERATOR\u TYPE,null);
textBox=textBox.iterateNext();
console.log(textBox.textContent);
}
获取所有li(作品)
获取单个标题和文本(不适用)
  • 标题#1一些文本
  • 标题#2一些文本
  • 标题#3一些文本
  • 标题#4一些文本
  • 标题#5一些文本

太棒了!虽然我一次又一次地浏览了文档。评估文档,但我没有注意到这个指令,哇,非常感谢!
document.evaluate(".//h3", levelResult, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null)