我如何为函数“document.getElementById”添加别名 我已经看到它使用$
完成了由于
答案 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-js在src/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。