Can I assign document.getElementById to variable i

2020-07-20 04:09发布

I think document.getElementById is a function.

So this function can be assigned to variable. Like this

var hello = document.getElementById;
console.log(hello('hello')));
<div id="hello">hello</div>

But It occurred error like this:

Uncaught TypeError: Illegal invocation

2条回答
Summer. ? 凉城
2楼-- · 2020-07-20 04:50

Wrap it as a function with a parameter which represents the ID.

var hello = function(id){
     return document.getElementById(id);
}
console.log( hello('hello')  );
<div id="hello">hello</div>

查看更多
冷血范
3楼-- · 2020-07-20 05:07

The issue is context. When you take the reference to the function, you lose the function's context to document. So, in order to do what you are trying to, you need to bind the context:

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

Working example:

var hello = document.getElementById.bind(document);
console.log(hello('hello'));
<div id="hello">hello</div>

查看更多
登录 后发表回答