![](/img/trans.png)
[英]Always get null value from iterateNext() for document.evaluate
[英]Get the text value of nextsibling through document.evaluate
我要在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頁; 23厘米”。 與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()
和.nextElementSibling
相當簡單地實現:
var pagination = document.getElementsByClassName('SmallColHeading')[0]; var pagination2 = pagination.nextElementSibling; console.log(pagination2.innerHTML.trim());
<table> <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> </table>
.trim()
可用於擺脫任何其他空白。
請注意, <IMG>
將需要一個自動關閉標簽,並且您需要一個外部<table>
元素。 如果不包含<table>
,則表內容將直接添加到<body>
,並且選擇器無效。
我可以通過以下代碼實現結果:
var Pages = document.evaluate("//td[contains(., 'Format')]/following-sibling::td",
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null );
if (Pages.singleNodeValue) {
var pages = Pages.singleNodeValue.textContent;
}
我應該在此之后遍歷:“ // td [contains(。,'Format')] /”,而不是添加像這樣的變量:“ var / pagination2 = Pagination.nextSibling”。 innerHTML;“ 這篇文章如何使用xpath選擇以下同級/ xml標記為我提供了提示以及我研究過的初始鏈接: Javascript .querySelector通過innerTEXT查找<div>,並且: https : //developer.mozilla.org/zh-CN / docs / Web / JavaScript / Introduction_to_using_XPath_in_JavaScript
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.