为什么getElementsByClassName不起作用?

and*_*ier 0 javascript css

我正在尝试检测屏幕分辨率,然后设置位置(如顶部,左侧)以获得多个屏幕分辨率,但它无法正常工作.谁知道我的代码有什么问题?

CSS:

.Scrolloutside
{
  position:relative;
  left: 550px;
 }
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

  var nHeight = screen.height;
  var nWidth = screen.width; 
  if (nHeight ==714 && nWidth==1005)
 {
   //document.write("height:"+nHeight+" ,width="+nWidth+"<br>");
   var newsTarget = document.getElementsByClassName('Scrolloutside');
   newsTarget.style.top= "500px";
  }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class = "Scrolloutside">
    <div class="scroller_title">News</div>
<div class="scroller_container">
    <div class="jscroller2_up">
    <?
    echo $secnews;
    ?>
    </div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

document.getElementsByClassName()返回一个nodeListHTMLCollection哪个都是元素列表,而不是单个元素.即使只有一个匹配元素,它仍会返回一个只包含一个项目的列表.因此,您必须获取列表中的第一项或遍历整个列表(取决于您的代码需要).

从列表中获取第一个项目(如果您可以假设只有一个项目具有类名称):

var newsTarget = document.getElementsByClassName('Scrolloutside');
newsTarget[0].style.top= "500px";
Run Code Online (Sandbox Code Playgroud)

或者遍历列表(如果可能有多个具有该类名的项目):

var newsTarget = document.getElementsByClassName('Scrolloutside');
for (var i = 0; i < newsTarget.length; i++) {
    newsTarget[i].style.top= "500px";
}
Run Code Online (Sandbox Code Playgroud)