为什么此JavaScript代码无法向文本添加样式? var css=[“字体系列”]; var a=document.getElementById(“t”); 对于(变量i=0;i
它不会向它添加任何字体。因为为什么此JavaScript代码无法向文本添加样式? var css=[“字体系列”]; var a=document.getElementById(“t”); 对于(变量i=0;i,javascript,Javascript,它不会向它添加任何字体。因为for循环从未运行过a.length将给出未定义的,因为a不是数组,而是DOM元素i
for
循环从未运行过a.length
将给出未定义的,因为a
不是数组,而是DOM元素<代码>i
将始终计算为false
如前所述,不要将“font-family”
和“Arial”
放在数组中。直接传递字符串:
var css = ["font-family"];
var a = document.getElementById("t");
for (var i = 0; i < a.length; i++) {
a.style[css] = ["Arial"];
}
<div id="t">Hello World</div>
或
正如您在函数名中看到的,元素是单数,而不是复数。因为for
循环从未运行过a.length
将给出未定义的,因为a
不是数组,而是DOM元素<代码>i
将始终计算为false
如前所述,不要将“font-family”
和“Arial”
放在数组中。直接传递字符串:
var css = ["font-family"];
var a = document.getElementById("t");
for (var i = 0; i < a.length; i++) {
a.style[css] = ["Arial"];
}
<div id="t">Hello World</div>
或
正如您在函数名中看到的,元素是单数,而不是复数。除了Felix的答案,您的样式分配没有意义。你想要的是:
document.getElementById("t").style[css] = "Arial";
除了Felix的答案,你的风格分配没有意义。你想要的是:
document.getElementById("t").style[css] = "Arial";
另外,无论是“font-family”
还是“Arial”
都不应该放在括号内。请参见:上次更新-您还需要使用fontFamily,因为样式是一个对象(请参见我的答案了解等效项)@BobbyJack:仅当您使用“点”符号时。如果您通过字符串访问属性,这很好(并且您可以通过这种方式访问对象属性)。此外,“font-family”
和“Arial”
都不应该放在括号中。re:last update-您还需要使用fontfmily,因为样式是一个对象(请参阅我的答案了解等效项)@BobbyJack:只有使用“dot”符号时才可以。如果您通过字符串访问属性,这很好(您可以通过这种方式访问对象属性)。实际上,我的意思是使用数组作为“样式”,并使用数组为其提供值。如下所示:var css=[“字体系列];var a=document.getElementById(“t”);对于(var i=0;i