document.getElementById的简写方式

所有的Web前端同仁对 document.getElementById 都非常熟悉了。

开发过程中经常需要用其获取页面id为xx的元素,自从元老级js库Prototype流行后,都喜欢这么简写它

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

 

 

 

 

_$(id)代替document.getElementById(id)

 

prototype 中对document.getElementById的定义:

function $()
{
  var elements = new Array();
  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 $(objectId) {
if(document.getElementById && document.getElementById(objectId)) {
    return document.getElementById(objectId);// W3C DOM
    } else if (document.all && document.all(objectId)) {
        return document.all(objectId);// MSIE 4 DOM
    } else if (document.layers && document.layers[objectId]) {
        return document.layers[objectId];// NN 4 DOM.. note: this won't find nested layers
    } else {
        return false;
    }
}

这样写不断可以为JS文件省掉不少字符,还可以避免输入时的错误.
有一个小小的说明,$是一个自定义的值,你可以根据你的喜好写任何一个非JavaScript保留关键字,比如i_d,myid,等等你喜欢的定义.如果你的页面中调用到了jQuery的库文件,你可以直接用$代替document.getElementById.

 

 

原文地址:https://www.cnblogs.com/huanlei/p/2443001.html