3

我做了一个网站,需要执行 javascript。我想从我的 HTML 菜单中获取子节点。

这是我的 HTML 结构的一部分:

    <ul class="menu">
       <div class="moduletable_menu">
          <ul class="nav menu nav-pills">
             <li class="item-101">
             <li class="item-108 current active deeper parent">
             <li class="item-127">
             <li class="item-113 deeper parent">
             <li class="item-124">
             <li class="item-116 deeper parent">
          </ul>
       </div>
    </ul>

所以,我想获得“活跃”元素。我做了以下代码:

    function getmenuItem(){
   var SelectedItem = document.getElementsByClassName("active");
   console.log(SelectedItem);
   console.log(SelectedItem.length);
    } 

问题来了:

我通过 Firebug 显示了控制台,它向我展示了

HTMLCollection[]
0

然后我尝试访问集合,SelectedElement[0]但我得到“未定义”。

请告诉我如何获取活动元素的孩子。

4

1 回答 1

2

只有在构建 HTML 页面后才能找到该元素。如果您的一段代码<script>在文档中是独立的<head>,则还没有类元素"active"

将您的代码放入windows.onload,在页面加载并创建其元素后调用:

window.onload = function() {
    var SelectedItem = document.getElementsByClassName("active");

    console.log(SelectedItem);
    console.log(SelectedItem.length);
} 

然后您的集合的长度应该为 1,并且您可以使用 访问第一个元素[0]。当从诸如 之类的事件处理程序中调用时,该代码也将起作用onclick,只有当文档已经存在时才会触发。(因为否则不会有任何按钮可以点击。)

于 2014-05-28T13:17:21.470 回答