为什么这个getElementById函数不起作用?

时间:2011-06-03 17:26:16

标签: javascript

<div id="t">gf</div>
<div id="g">ds</div>

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

$('t', 'g').style.color = "red";

有没有我做错的事。它说无法调用null的样式......

2 个答案:

答案 0 :(得分:4)

function $() {
    return document.getElementById.apply(document, arguments);
}

您需要使用apply方法使用数组作为参数来调用函数。 apply函数也需要上下文,因此您还需要传递document

此外,getElementById只接受一个参数并返回单个元素(AFAIK),因此这基本上没用。更不用说即使它确实接受多个参数来返回多个元素,你仍然无法以这种方式使用结果数组。

答案 1 :(得分:1)

function $(a, f) {
    a.forEach(function(id) {
        f(document.getElementById(id));
    });
}
$(['t', 'g'], function(d) {
    d.style.color = "red";
});
相关问题