1

这是一个简单的 javascript 命令,可以在页面加载时更改类名。我做错了什么,它不起作用?http://jsfiddle.net/wtH2Y/4/

<html>
 <head>
 <style>
   .away {
        margin: 30px 0 0 0 !important;
        position:fixed;
        -webkit-transition: margin 0.6s;
        -moz-transition: margin 0.6s;
        -o-transition: margin 0.6s; 
   }
   .in {
        margin:0;
        position:absolute;
   }

 </style>
 <script>
     window.onload = function pre-loader() {
        document.getElementByClassName('away').className = 'in';
     };
 </script>
</head>

<div class="away">
this should slide up when the page loads
</div>
4

2 回答 2

3

一些东西:

  • 函数名称中不能有破折号。重命名您的函数。
  • 如果您使用的是命名函数,我不会以这种方式将其分配给属性。要么匿名,要么像这样分配它:

    function foo() {
        ...
    }
    
    window.onload = foo;
    

    否则,您将无法调用foo().

  • getElementByClassName应该是getElementsByClassName(注意s)。此外,由于它会返回一组元素,因此您需要使用循环对其进行迭代for
于 2013-07-17T01:42:18.407 回答
0

因为函数 isdocument.getElementsByClassName和 not document.getElementByClassName。它返回一个数组。因此,您需要获取第一个元素并应用该类。像这样...

document.getElementsByClassName('away')[0].className = 'in';

为了简单起见,为什么不给 div 分配一个 id

<div class="away" id="mydiv">

然后使用document.getElementById. 像这样...

document.getElementById('mydiv').className = 'in';

它更简单易用。

于 2013-07-17T01:40:48.083 回答