当前位置:  开发笔记 > 编程语言 > 正文

使用XPath读取输入的值,然后在Greasemonkey中使用

如何解决《使用XPath读取输入的值,然后在Greasemonkey中使用》经验,为你挑选了1个好方法。

我正在使用此XPath来获取字段的值:

//input[@type="hidden"][@name="val"]/@value

我得到了几个结果,但我只想要第一个.运用

//input[@type="hidden"][@name="val"]/@value[1]

不行.有了这个,我如何在Greasemonkey中获取值?我正在尝试这样的事情:

alert("val " + val.snapshotItem);

但我认为那是节点,而不是字符串.



1> Tomalak..:

对于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.");

严格来说:"position()=1"在XPath过滤器中使用并不是绝对必要的,因为无论如何只会使用第一个返回的结果(via snapshotItem(0)).但为什么要建立一个比你真正需要的更大的结果集.

编辑:使用该ORDERED_NODE_SNAPSHOT_TYPE类型的XPath结果可确保按文档顺序获取节点.这意味着结果的第一个节点也将是文档中的第一个节点.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有