我可以将 document.getElementById 分配给 javascript 中的变量吗
Can I assign document.getElementById to variable in javascript
我认为document.getElementById
是一个函数。
所以这个函数可以赋值给变量。像这样
var hello = document.getElementById;
console.log(hello('hello')));
<div id="hello">hello</div>
但是出现了这样的错误:
Uncaught TypeError: Illegal invocation
将其包装为一个函数,其中包含一个代表 ID 的参数。
var hello = function(id){
return document.getElementById(id);
}
console.log( hello('hello') );
<div id="hello">hello</div>
问题是上下文。当您获取对函数的引用时,您将函数的上下文丢失到 document
。所以,为了做你想做的事,你需要 bind
上下文:
var hello = document.getElementById.bind(document);
工作示例:
var hello = document.getElementById.bind(document);
console.log(hello('hello'));
<div id="hello">hello</div>
我认为document.getElementById
是一个函数。
所以这个函数可以赋值给变量。像这样
var hello = document.getElementById;
console.log(hello('hello')));
<div id="hello">hello</div>
但是出现了这样的错误:
Uncaught TypeError: Illegal invocation
将其包装为一个函数,其中包含一个代表 ID 的参数。
var hello = function(id){
return document.getElementById(id);
}
console.log( hello('hello') );
<div id="hello">hello</div>
问题是上下文。当您获取对函数的引用时,您将函数的上下文丢失到 document
。所以,为了做你想做的事,你需要 bind
上下文:
var hello = document.getElementById.bind(document);
工作示例:
var hello = document.getElementById.bind(document);
console.log(hello('hello'));
<div id="hello">hello</div>