javascript - 使用 JavaScript 和 XPath 从 DOM 中选择元素

标签 javascript dom xpath

我试图弄清楚如何使用 xpath 和 JavaScript(这是这里唯一的选项)在下面的代码中选择文本区域。

<body>
    <div id="calculator">
        <div id="calculatorController">
            <form action="#" method="get" onsubmit="return false">
                <p>
                    <textarea disabled="disabled"></textarea>
                </p>
            </form>
        ...

我正在尝试做这样的事情

var element = document.evaluate( '//body/form/p/textarea' ,document, null, XPathResult.ANY_TYPE, null );
// and write back
element.value = "Hello textarea";

但是失败了

有人愿意帮忙吗?

谢谢

在此更新

================================================== =============

整个代码块如下所示。 不要忘记 window.onload=function()

<html>
<head>
  <script type='text/javascript'> 
  //<![CDATA[ 
  window.onload=function(){
  var element = document.evaluate( '//body//form/p/textarea' ,document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue;

        if (element != null) {
            element.value = 'Hello textarea';
        }

  }
  //]]> 
  </script> 
</head>
<body>
    <div id="calculator">
        <div id="calculatorController">
            <form action="#" method="get" onsubmit="return false">
                <p>
                    <textarea disabled="disabled"></textarea>
                </p>
            </form>
        </div>
    </div>
</body>
</html>

最佳答案

evaluate 方法不会像您期望的那样返回 DOM 节点。你需要

var element = document.evaluate( '//body//form/p/textarea' ,document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue;
if (element != null) {
  element.value = '...';
}

关于javascript - 使用 JavaScript 和 XPath 从 DOM 中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466831/

相关文章:

javascript - js jquery 转发保存的事件

javascript - 应该首先触发 blur 还是 mousedown?

javascript - XPath 选择在 Microsoft Edge 中不起作用(在 Chrome 和 Firefox 中有效)

xslt - 如何基于与正在搜索的树中的属性同名的属性,在循环中获取带有xpath的XML节点?

javascript - KnockoutJS - 将 js 对象分配给可观察的 View 模型

Javascript - 重定向到带有 POST 数据的页面

javascript - Mongoose 已连接但找不到数据

javascript - 我有多个带有复选框及其值的 <td>。我想更改 <td> 的颜色

javascript - 在 div 加载到 dom 后,在 div 上附加一个按钮

Selenium + capybara : find selector anywhere within element