怎样从某个dom节点下查找xpath?

<div>
  <div class="menu">
    1<input type="text">
    2 <input type="text">
  </div>
  3 <input type="text">
</div>
var menu = document.querySelector('.menu')
var xpath = "//input"
var arr =[]
var result = document.evaluate(xpath, menu , null, XPathResult.ANY_TYPE, null);
var nodes = result.iterateNext();
while (nodes){
    arr.push(nodes)
    nodes=result.iterateNext();
}
console.assert(arr.length === 2)
// Assertion failed: console.assert

举例,想从menu下用xpath找所有input。(复杂一点的如input的class="tInput", 且value为100的所有input)

document.evaluate(xpath, menu ... 这里不能从menu下面查找。我想通过dom节点+xpath 查找子元素。

阅读 1.6k
1 个回答
document.evaluate('.//input', menu , null, XPathResult.ANY_TYPE, null);

//input 是从 DOM 树的根下面找,.//input 才是相对的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题