我创建了一个网站,需要推动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]
访问该集合,但我得到了“未定义”。
请告诉我如何让活跃元素的孩子们。
答案 0 :(得分:1)
只有在构建HTML页面后才能找到该元素。如果您的一段代码在文档<script>
的{{1}}中是独立的,那么还没有类<head>
的元素。
将代码放在"active"
中,该页面在加载页面并创建其元素后调用:
windows.onload
然后您的集合的长度应为1,您可以使用window.onload = function() {
var SelectedItem = document.getElementsByClassName("active");
console.log(SelectedItem);
console.log(SelectedItem.length);
}
访问第一个元素。从[0]
之类的事件处理程序中提取代码时,代码也会起作用,只有当文档已存在时才会触发。 (因为否则不会有任何按钮点击。)