2011-06-03 184 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"; 
}); 
相關問題