9 javascript xpath greasemonkey
我正在使用此XPath来获取字段的值:
//input[@type="hidden"][@name="val"]/@value
Run Code Online (Sandbox Code Playgroud)
我得到了几个结果,但我只想要第一个.运用
//input[@type="hidden"][@name="val"]/@value[1]
Run Code Online (Sandbox Code Playgroud)
不行.有了这个,我如何在Greasemonkey中获取值?我正在尝试这样的事情:
alert("val " + val.snapshotItem);
Run Code Online (Sandbox Code Playgroud)
但我认为那是节点,而不是字符串.
Tom*_*lak 18
对于XPath,请尝试:
//input[@type="hidden" and @name="val" and position() = 1]/@value
要在GreaseMonkey脚本中使用,请执行以下操作:
var result = document.evaluate(
"//input[@type='hidden' and @name='var' and position()=1]/@value",
document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null
);
var hiddenval = result.snapshotItem(0);
if (hiddenval)
alert("Found: " + hiddenval.nodeValue);
else
alert("Not found.");
Run Code Online (Sandbox Code Playgroud)
严格来说:"position()=1"在XPath过滤器中使用并不是绝对必要的,因为无论如何只会使用第一个返回的结果(via snapshotItem(0)).但为什么要建立一个比你真正需要的更大的结果集.
编辑:使用该ORDERED_NODE_SNAPSHOT_TYPE类型的XPath结果可确保按文档顺序获取节点.这意味着结果的第一个节点也将是文档中的第一个节点.
| 归档时间: |
|
| 查看次数: |
28501 次 |
| 最近记录: |