这个是公司js库的代码,并非简单对getElementById函数的封装,有以下两个扩展
- 若传入多个参数,可返回相应元素数组
- 若传入this(元素本身),可返回元素本身,通用性更好
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;
}
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;
}
这个是prototype.js里的代码,用递归来实现
function
$(element)
...
{
if (arguments.length > 1) ...{
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
elements.push($(arguments[i]));
return elements;
}
if (typeof element == 'string')
element = document.getElementById(element);
return Element.extend(element);
}
if (arguments.length > 1) ...{
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
elements.push($(arguments[i]));
return elements;
}
if (typeof element == 'string')
element = document.getElementById(element);
return Element.extend(element);
}