javascript - 从 javascript : document. 突出显示 html 评估返回空节点

标签 javascript jquery html ajax xpath

在我的index.html 中有一个div,它将填充一些从ajax 请求返回到另一个网页的html 内容。我需要突出显示由 xpath 确定的加载的 html 内容的某些特定部分。使用解决方案中的代码找到 here它返回一个空节点。显然,当我尝试使用引用 ajax 请求中的代码的 xpath 时,如下所示:

var node = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

它返回一个空节点。

我正在寻找一些有用的东西来替换函数内的“文档”,目的是从ajax获取引用代码的非空节点,而不是从仍包含空div的index.html获取引用代码的非空节点。

我需要填写的div是这样的:'div id="mainAreaContent" /div' 在这里你可以找到我想要插入的内容( https://ideone.com/bseVSF ),我使用的路径是 /table/tr/td/table[1]/tr/td[2]/h3[ 2]/text()document变量是调用js脚本的index.html。

最佳答案

你写道:

/table/tr/td/table[1]/tr/td[2]/h3[2]/text().

如果我在 oXygen(支持 XPath/XSLT 等的 XML 编辑器)中打开您的文件,并且使其有效(您引用的文件不完整/损坏),那么您给定的 XPath 将选择文本节点 "The Architecture and Datasets of Docear's Research Paper Recommender System" (sic)。

你写道:

The div i need to fill is this: 'div id="mainAreaContent" /div

我没有看到任何div在你的 XPath 中,也没有任何带有 id mainAreaContent 的东西在您的源 HTML 中,因此如果您正在搜索它,您会得到 null 是正确的: 不存在。

关于您的 XPath 表达式

您显示的 XPath 从根开始。如果你的root不是<table> ,但是<html>例如,您应该将其更改为包含到 table 的路径。元素。您显示的(不完整)文档始于 <table> ,但我假设它是 HTML 页面的一部分。也许你的选择表达式应该像 /html/body/div/p/table... 一样开始,但我不知道,你没有显示那部分。

关于javascript - 从 javascript : document. 突出显示 html 评估返回空节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723218/

相关文章:

javascript - 我如何警告用户单击后退按钮?

javascript - 将 scrollIntoView 函数应用于 JQuery 函数

html - 以不同方式显示列表的最后一项

javascript - 在 HTML 表内进行计算时遇到问题

jquery - 将 css 应用于页面内的 jquery 移动元素

javascript - 以功能评估为条件抢占 promise

javascript - 为什么第二个 JSON 对象无效?

javascript - Ionic- Cordova 构建问题

javascript - 如何随机设置背景

javascript - 在 1 页上配置 2 个 javascript slider