在Javascript中为document.getElementById创建别名

时间:2009-06-05 05:48:15

标签: javascript function alias

我如何为函数“document.getElementById”添加别名 我已经看到它使用$

完成了

由于

7 个答案:

答案 0 :(得分:13)

var $ = document.getElemenyById.bind( document );

答案 1 :(得分:10)

可能是最简单/最短的方式:

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

答案 2 :(得分:3)

这是我在自己的库中使用的东西。 DOM是类,$是一个函数,它是getElementById函数的快捷实现:

function DOM()
{
  this.$ = function(elementIDs)
  {
    var el;

    // If an array of element names is passed.
    if (arguments.length > 1) 
    {
      var elements = [];
      var length = arguments.length;
      for (var i = 0; i < length; i++)
      {
        // Call this function recursively for each passed parameter.
        elements.push(this.$(arguments[i]));
      }
      return elements;
    }

    // If a single element name is passed.
    if (typeof(elementIDs) == "string")
    {
      el = document.getElementById(elementIDs);
    }
    return el;
  }
}

用法:

var el = new DOM().$("elementID");

您可以将其别名为顶级窗口元素。

答案 3 :(得分:2)

ES6中引入的新功能让我们改进了Chris Lloyd的答案,简化了:

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

为:

const $ = id=> document.getElementById(id);

答案 4 :(得分:0)

function $( s ) {
    return document.getElementById( s ) ? document.getElementById( s ) : "";
}

$( "myId" );

这假设您只想使用美元函数(选择器)来获取ID。我没有测试,但它应该工作。

上次我查看jQuery的核心时,它将一个字符串作为参数,然后使用正则表达式来确定它是什么类型的选择器。

答案 5 :(得分:0)

facebook's connect-jssrc/core/prelude.js中执行以下操作:

if (!window.FB) {
  FB = {
    // ...
    $: function(id) {
      return document.getElementById(id);
    }
    // ...
  }
}

然后,要使用它,它们会:

FB.$('name-of-id');

初始块创建全局对象FB。他们使用此对象FB作为命名空间,并在其中定义其所有对象,属性和函数。这样,只要其他代码不使用全局对象FB,它就可以与其他JavaScript代码一起使用。

答案 6 :(得分:-1)

当你看到$()函数时,它可能是一些库,如jQuery或Prototype。 $ function不是document.getElementById的别名,而是一个扩展函数功能的包装器。

要创建自己的包装器,可以编写一个函数“alias”:

var alias = document.getElemenyById;

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

但实际上,我会使用其中一个可用的库,例如jQuery或Prototype。