为什么返回document.getElementById不起作用

时间:2013-08-21 08:25:56

标签: javascript

var $ = function (id){return document.getElementById(id);}
 window.onload=function(){
 $("num").onfocus=function(){
        $("show").style.display="block";
 }

未捕获的TypeError:undefined不是函数

但当我将$(“num”)更改为$(“#num”)时,它可以工作,为什么?

3 个答案:

答案 0 :(得分:2)

您必须在页面上加载jQuery,并将$定义为局部变量,因此在onload期间,$ variable采用它的旧表示,即jQuery。 jQuery使用与CSS相同的选择器。

如果您不需要jQuery,或者在兼容模式下设置jQuery,或者将$变量设置为全局变量,您可以解决问题。

答案 1 :(得分:2)

如果你

你的代码是有效的

a)没有加载jQuery

b)添加缺少的大括号

Live demo

var $ = function (id){return document.getElementById(id);} 

window.onload=function(){
   $("num").onfocus=function(){
        $("show").style.display="block";
   }       
 }

答案 2 :(得分:0)

您最有可能引用uninformative jQuery $变量名称。原因是,在引用window.jQuery框架(sources)的情况下,window.$jQuery都指向jQuery实例。

<小时/> 事实上,接下来应该按预期工作:

 window.onload=function(){
   var $ = function (id){return document.getElementById(id);} 
   $("num").onfocus=function(){
        $("show").style.display="block";
   }
 }