0
我試圖使用document.evaluate
來查找與我的查詢匹配的文本節點。我發現的問題是,在我使用的XPath中,它沒有找到跟隨另一個元素的文本節點。例如,給定這些條件(jsFiddle):使用XPath在節點後查找文本節點
HTML
<div><p>$100</p></div>
<p>Test test <span>test</span> $100 test</p>
的Javascript
var item,
indx = 0,
items = document.evaluate('//*[contains(text(),"$")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
while (item = items.snapshotItem(indx++)) {
if (item.nodeName !== 'SCRIPT') {
console.log(item.textContent);
}
}
此XPath僅找到的第一個$
,第二未發現因爲在該<span>
的中間。
所以我的問題是如何改變JavaScript(不是HTML)來找到兩個匹配?
我試圖改變我分享的小提琴,我看到這個錯誤:'不是有效的XPath表達式' – Mottie
我試過''* [contains(。,「$」)]''兩個元素*,但*如果使用'document',則返回'html'元素,並切換到'document.body'返回最外層的包裝器,這不是最優的。 – Mottie
對不起,我忘了關閉''',現在編輯和糾正。 –