Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript xpath-将搜索限制为节点不工作?_Javascript_Xpath_Greasemonkey - Fatal编程技术网

Javascript xpath-将搜索限制为节点不工作?

Javascript xpath-将搜索限制为节点不工作?,javascript,xpath,greasemonkey,Javascript,Xpath,Greasemonkey,我做错了什么?我试图将xpath搜索限制在表中的某一行,但我的查询始终返回第一行中跨度的内容: var query = "//span[contains(@id, 'timer')]"; var root = document.getElementById('movements').rows[1]; document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.tex

我做错了什么?我试图将xpath搜索限制在表中的某一行,但我的查询始终返回第一行中跨度的内容:

var query = "//span[contains(@id, 'timer')]";
var root = document.getElementById('movements').rows[1];
document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.textContent
var root = document.getElementById('movements').rows[1];

请帮忙

您将获得第一行:

var query = "//span[contains(@id, 'timer')]";
var root = document.getElementById('movements').rows[1];
document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.textContent
var root = document.getElementById('movements').rows[1];
这将得到第二行:

var root = document.getElementById('movements').rows[2];
您需要指定所需行的正确索引。

请尝试以下操作:

var query = "//td//span[contains(@id, 'timer')]";
问题:这是一个绝对的XPath表达式,它忽略了从特定行计算它的事实

解决方案:要获得想要的结果,请使用:


//span[contains(@id,'timer')]

你怎么知道我在搜索你的解决方案,因为我搜索了几个小时。。。一个简单的时期救了我一天。我想知道为什么我不能将搜索范围从“document”或“document.body”限制到“this[0]”,这表示所选的DOM元素。UP++适用于您的经期,我在其他地方找不到解释:-)