首页 > 解决方案 > 如何正确设置 getElementById 对象?

问题描述

我有一些 JavaScript,我在其中设置了一个全局变量来保存函数document.getElementById。在同一文件中的函数中,然后我尝试使用该变量以及idHTML 段落元素的 来写入innerHTML属性。但是,在 IE11 控制台中,我收到错误“SCRIPT65535: Invalid Calling Object”。明确写document.getElementByID("someid").innerHTML = "value"作品。以下是代码的关键部分(都在同一个文件中)。

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <p id="name1"></p>
    <script>
      var objDocGEBI = document.getElementById;

      function writeData() {
        if (true) {
          objDocGEBI("name1").innerHTML = "value";
        }
      }
    </script>
  </body>
</html>

标签: htmlgetelementbyid

解决方案


您的问题与函数绑定有关。

简短的版本,您是否需要将函数绑定到文档,如下所示:

var objDocGEBI = document.getElementById.bind(document);

这将确保它正确绑定到文档而不实际运行该函数。修复此行后,您应该会发现上面的其余代码按预期工作。


推荐阅读