javascript - .getElementsByClassName 不起作用?

标签 javascript html

大家好:我很难让这段代码工作:

HTML:

        <div id='nav_bar'>
       <ul id="ul">
<li onmouseover="test();" > <a href='friends.php' class="first"  >Friends</a>                       </li>
          <li onmouseover="test();"> <a href='messages.php' class="first">Messages</a>              </li>
          <li onmouseover="test();"> <a href='index.php' class="first">Home</a>                     </li>
          <li onmouseover="test();"> <a href='profile.php?id=<?= $prof ?>' class="first">Profile</a></li>
          <li onmouseover="test();"> <a href='find_friends.php' class="first">Search</a>            </li>
          <li onmouseover="test();"> <a href='members.php' class="first">Members</a>                </li>
          <li onmouseover="test();"> <a href='logout.php' class="first">Log Out</a>                 </li>

       </ul>
    </div>  

JavaScript:

    function test(){
x = document.getElementsByClassName("first");
x.style.backgroundColor = "#ee7600";
x.style.border = "thin solid black";
}

HTML 文件正确引用了 Javascript 文件;我试图在导航栏中使用 class="first"更改每个元素的样式。为什么不会document.getElementsByClass()工作?

最佳答案

getElementsByClassName 返回一个类似数组的实时 HTMLCollection

style 是单个 HTMLElement 的属性。

循环遍历 HTML Collection 并依次修改每个集合的样式。

for (var i = 0; i < x.length; i++) {
    x[i].style.backgroundColor = "#ee7600";
    x[i].style.border = "thin solid black";
}

关于javascript - .getElementsByClassName 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676708/

相关文章:

javascript - Select2 不适用于 JS 生成的元素

javascript - jQuery 中的 focusin/focusout 与 focus/blur 有什么区别?

javascript - 如何在 React Native 中播放声音?

javascript - 如何编写一个不可点击的链接,在点击时运行 javascript 函数?

html - 图像悬停时不会发生 CSS 过滤器灰色

javascript - 取消选中嵌套复选框后禁用提交按钮

php - 从数据库格式化文本

javascript - Google Analytics 出站链接事件跟踪

javascript - jquery - 选中/取消选中带有隐藏输入的自定义复选框

jquery - 使用 JQuery 和 HTML 5 Canvas 创建上下文菜单