为了账号安全,请及时绑定邮箱和手机立即绑定

谁能给我解释一下视屏中的这段代码具体是什么意思????

function $(id){
return typeof id=="string"?document.getElementById(id):id;
}



正在回答

2 回答

$(id)是js document.getElementById(id)的简写,定义了这个方法以后调用的时候就可以直接用类似于jquery中那样的$(“img-icon”).onclick简单封装。所以很多人喜欢这样写:

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

但是这一类js代码会和与JQuery对象获取函数冲突会与JQuery冲突的,导致JQuery获取不了对象,出现类似于:Uncaught TypeError: Cannot set property ‘onclick’ of null 这样的错误提示。

安全的写法可以这样

var $id = function (id) {
   return "string" == typeof id ? document.getElementById(id) : id;
};

或者:

var $id = function (id) {
   return typeof id == "string" ? document.getElementById(id) : id;  
};

4 回复 有任何疑惑可以回复我~
#1

千万分之一 提问者

非常感谢!
2014-12-16 回复 有任何疑惑可以回复我~

为何用"string" === typeof id 而不是"==" 

0 回复 有任何疑惑可以回复我~
#1

fiona23

都尽量用=== 少用==
2014-12-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

谁能给我解释一下视屏中的这段代码具体是什么意思????

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信