【发布时间】:2019-04-30 04:03:42
【问题描述】:
我的 HTML 中有以下表格数据要遍历:
<table id="publicationTable" cellpadding="2" cellspacing="0">
<tr>
<td vAlign="top"><IMG SRC="/images/icons/general/spacer.gif" width="20" height="1"></td>
<td class="SmallColHeading">Published </td>
<td class="ColRow">Publisher, place and date of publication</td>
</tr>
<tr>
<td vAlign="top"><IMG SRC="/images/icons/general/spacer.gif" width="20" height="1"></td>
<td class="SmallColHeading">
Format </td>
<td class="ColRow">
vii, 201 pages ; 23 cm. </td>
</tr>
我想输出文本“vii, 201 pages ; 23. cm.”与 document.evaluate 但我错过了一些东西。问题是选择器应该是具有类属性值“SmallColHeading”的 td,并且具有(包含)格式的文本节点/值。
var Pagination = document.evaluate("//td[contains(., 'Format')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null );
var Pagination2 = Pagination.nextSibling.innerHTML;
if (Pagination.singleNodeValue) {
var Pages = Pagination.singleNodeValue.textContent;
}
alert(Pagination2);
alert(Pages);
在 nextSibling 之后我正在尝试各种组合,例如删除 innerHTML(我得到未定义)或用 textContent 替换它(我得到无法读取属性'textContent')。我正在努力在这个 HTML 上通过 javascript 遍历 nextSibling,因为 tr 甚至没有 id 值,而这就是我们在系统中拥有的所有东西。提前致谢!
【问题讨论】:
-
您是否特别需要为此使用 XPath?
.getElementsByClassName()还不够吗? -
如果 .getElementsByClassName(),只要我能够获得上述文本值,我就可以接受。谢谢和欢呼!
标签: javascript html document.evaluate