问答详情
源自:1-4 js实现切换效果

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

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



提问者:千万分之一 2014-12-11 16:04

个回答

  • Tracy_
    2014-12-11 16:10:03
    已采纳

    $(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;  
    };

  • michael_sofield
    2014-12-12 18:03:17

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