html - 如何正确设置 getElementById 对象?
问题描述
我有一些 JavaScript,我在其中设置了一个全局变量来保存函数document.getElementById
。在同一文件中的函数中,然后我尝试使用该变量以及id
HTML 段落元素的 来写入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>
解决方案
您的问题与函数绑定有关。
简短的版本,您是否需要将函数绑定到文档,如下所示:
var objDocGEBI = document.getElementById.bind(document);
这将确保它正确绑定到文档而不实际运行该函数。修复此行后,您应该会发现上面的其余代码按预期工作。
推荐阅读
- ruby-on-rails - 浏览器中的 Rails API 路径给出此错误 NoMethodError undefined method `[]' for nil:NilClass
- sql - Power Bi SQL - 不支持语义查询
- amazon-web-services - 如何使用Lamda函数在RDS中使用CDK创建表?
- functional-programming - 如何正确使用 Result.bind
- java - 根据JAVA列表内对象的属性将新对象添加到对象列表中
- file - WSO2 流式集成器 - 读取大文件(一百万条记录)并写入另一个文件
- python - 'C:\Users\HP' 不是内部或外部命令、可运行程序或批处理文件
- python - 机器人框架:当我运行基本程序时,chrome 浏览器不起作用(我使用了 vscode)
- orm - Sequelize,我如何从多个表中找到
- git - 如何在git中创建当前分支与开始时进行比较?