javascript dom 节点 xpath 查询:精准定位子元素
本文介绍如何在 JavaScript 中,利用 XPath 表达式从指定的 DOM 节点开始查找元素。 许多开发者在使用
方法时,常常遇到从根节点而非指定节点开始查找的问题。
例如,开发者希望在一个 class 为 "menu" 的 div 元素下,查找所有 input 元素,或者更精确地,查找 class 为 "tInput" 且 value 为 "100" 的 input 元素。 直接使用
会从整个文档根节点开始搜索,而非从指定的 "menu" 节点开始。
关键在于理解 XPath 表达式的相对路径。
表示查找文档中所有 input 元素。要从特定节点(例如,
节点)开始查找,需要使用相对路径表达式。
正确的 XPath 表达式
立即学习
“
Java免费学习笔记(深入)
”;
要从当前节点开始查找所有 input 子孙节点,应使用
。 点号 (
) 代表当前节点。 因此,
将从
节点开始递归搜索所有 input 子节点。
更复杂的条件查找
对于更复杂的条件,例如查找 class 为 "tInput" 且 value 为 "100" 的 input 元素,可以使用以下 XPath 表达式:
此表达式结合了
属性选择器
,精确地定位目标元素。 注意属性值需要用单引号或双引号括起来。 将此表达式与
方法结合使用,即可在
节点下进行精准查找。 通过这种方法,您可以有效地从任何指定的 DOM 节点开始,使用 XPath 表达式进行精确的元素查找。
document.evaluate()//input//inputmenu.//input.document.evaluate('.//input', menu, null, XPathResult.ANY_TYPE, null);menu.//input[@class='tInput' and @value='100']document.evaluatemenu