2011-06-03 149 views
1
<div id="t">gf</div> 
<div id="g">ds</div> 

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

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

有什么,我做错了。它说不能叫空的风格。为什么getElementById函数不起作用?

+2

是什么让你认为[getElementById](https://developer.mozilla.org/en/document.getElementById)与数组一起作为'id'参数? – 2011-06-03 17:30:14

+0

你在说什么? – 0x499602D2 2011-06-03 19:16:00

回答

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

您需要使用apply方法来调用使用数组作为自变量的函数。 apply函数也需要上下文,所以你也需要通过document

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

+0

似乎只能用于一个http://jsfiddle.net/c8DHY/2/ – Trufa 2011-06-03 17:30:48

+1

'getElementById'无论如何只接受一个参数,其余的将被忽略。 – 2011-06-03 17:31:32

+0

这将部分工作。 getElementById仍然只返回一个元素,所以只会引用数组中的第一个元素。 – WesleyJohnson 2011-06-03 17:32:13

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