都说这个函数是最值钱的function $() { 
    var elements = []; 
    for (var i = 0; i <arguments.length; i++) { 
        var element = arguments[i]; 
        if (typeof element =="string")
            element = document.getElementById(element); 
        if (arguments.length == 1) 
            return element; 
        elements.push(element); 
    } 
    return elements; 
} 不解的是,为什么不是一行代码最简单呢?function $(id) { 
    return document.getElementById(id); 

解决方案 »

  1.   

    前者是一次获取多个元素
    后者只获取一个不过前者还不如用jquery得了。
      

  2.   

    大概这种情况:
    <input type="text" id="t1"/><input type="text" id="t2"/><input type="text" id="t3"/>
    <script>
    function $() { 
    var elements = []; 
    for (var i = 0; i <arguments.length; i++) { 
    var element = arguments[i]; 
    if (typeof element =="string")
    element = document.getElementById(element); 
    if (arguments.length == 1) 
    return element; 
    elements.push(element); 

    return elements; 
    }
    var arr = $("t1", "t2", "t3", "t1");
    for (var i = 0; i < arr.length; i++) {
    arr[i].value += i;
    }
    </script>明显没有jquery方便。
      

  3.   

    感觉这个函数少许的不够严谨
    不过这个函数支持多个参数,可以返回一个dom对象数组
    直接用getelementbyid显然只能返回一个对象
      

  4.   

    为了不和jquery冲突,我一般定义自己的$$,多用一个$,以免潜在的修改。
    我也很少需要一次去多个id的元素。function $$(id){return document.getElementById(id)}因为document.getElementById实在是又臭又长又极其常用
      

  5.   


    for (var i = 0; i <arguments.length; i++) { //这里可以获得多个参数的嘛
            var element = arguments[i]; 
            if (typeof element =="string")
                element = document.getElementById(element); //多个参数的byId得到自然是多个元素了
            if (arguments.length == 1) 
                return element; 
            elements.push(element); 
        }