为什么javascript不在元素上应用样式?

时间:2013-11-16 15:45:25

标签: javascript html css

这段代码masteries = document.querySelectorAll(".hidden-masteries");在控制台上返回:

[<div class=​"hidden-masteries">​…​</div>​, <div class=​"hidden-masteries">​…​</div>​]

这是完整的代码:

var masteries = document.querySelectorAll(".hidden-masteries");
for (var m = masteries.length-1; m >= 0; m--) {
    if (m == 0) {
    masteries.top = 0;
    } else {
    masteries.bottom = 0;
    }
} 

它应该将css属性top: 0;添加到元素0和bottom: 0;到另一个,但两者都不起作用。

5 个答案:

答案 0 :(得分:3)

尝试masteries[m].style.top = 0;

答案 1 :(得分:2)

没有以这种方式添加CSS属性。您必须设置materies[m].style.top

答案 2 :(得分:1)

您需要索引到节点列表,然后对style对象进行操作:

  masteries[m].style.top = 0;

答案 3 :(得分:0)

使用它:

var masteries = document.querySelectorAll(".hidden-masteries");
for ( var m = masteries.length-1 ; m >= 0 ; --m ) {
    masteries[m].style[ m > 0 ? "bottom" : "top" ] = "0px";
} 

答案 4 :(得分:0)

不应该是masteries.style.top = 0

http://www.w3schools.com/jsref/prop_style_top.asp