我可以在javascript中将document.getElementById分配给变量

时间:2017-01-20 07:12:58

标签: javascript document getelementbyid

我认为document.getElementById是一个功能。

因此可以将此函数分配给变量。喜欢这个



var hello = document.getElementById;
console.log(hello('hello')));

<div id="hello">hello</div>
&#13;
&#13;
&#13;

但它发生了这样的错误:

  

未捕获的TypeError:非法调用

2 个答案:

答案 0 :(得分:7)

问题在于背景。当您参考该函数时,您将失去函数的上下文document。所以,为了做你想做的事,你需要bind上下文:

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

工作示例:

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

答案 1 :(得分:2)

将其包装为带有表示ID的参数的函数。

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