2013-02-10 99 views
0
var buttonArray = [ 
    document.getElementById('underline'), 
    document.getElementById('bold'), 
    document.getElementById('italic'), 
    document.getElementById('tnr'), 
    document.getElementById('ss'), 
    document.getElementById('red'), 
    document.getElementById('green'), 
    document.getElementById('blue') 
]; 

你能做到这一点吗?或者它太抽象了?使用JavaScript创建一组标签

+0

*你可以这样做* ...你*尝试*? (是的你可以)。 – Matt 2013-02-10 23:10:39

+0

你有没有试过运行你的代码?或者你是在尝试创建元素而不是仅仅选择它们? – Blender 2013-02-10 23:10:40

+0

你只是做了这个:所以是的。 – 2013-02-10 23:11:01

回答

2

是;这将工作正常。

你可以使它更优雅是这样的:

var buttonArray = [ "underline", ... ] 
        .map(document.getElementById.bind(document)); 
+1

当然,它更优雅,但'map'和'bind'还没有得到广泛的支持,所以你需要将它们用于旧版浏览器。一个简单的for-loop将标签转换为元素始终得到支持,并且仍然非常优雅。 – 2013-02-10 23:17:11

+0

@Slaks:你为什么最终需要在'getElementById'上调用'bind(document)'?我注意到它不起作用,但不会'document.getElementById'已经绑定到'document'? – 2014-01-29 16:33:06

+1

@okiharaherbst:No; 'document.getElementById'是对未绑定函数的引用。 '这个'是根据你的参考来设定的。 – SLaks 2014-01-29 16:39:19