我遇到了查找某些链接的父级,然后编辑这些链接的问题。预期的行为是,当您访问相关页面时,导航栏中的<li>
标记将使用active
类进行更新。实际行为是一个错误,指出:Cannot read property 'getElementsByTagName' of null
以下是相关的HTML:
<nav id="nav">
<ul class="links" id="nav_links">
<li><a href="index.html">Main</a></li>
<li><a href="aboutus.html">About Us</a></li>
<li><a href="appearances.php">Appearances</a></li>
</ul>
<ul class="icons">
<li><a href="https://www.facebook.com/page/" class="icon fa-facebook"><span class="label">Facebook</span></a></li>
</ul>
</nav>
和JavaScript:
function setActive() {
liObj = document.getElementById('nav_links').getElementsByTagName('li');
for(i=0;i<liObj.length;i++) {
if(document.location.href.indexOf(liObj[i].innerHTML.href)>=0) {
liObj[i].className='active';
}
}
}
$(document).ready(function(){
setActive();
});
似乎getElementById返回null,但代码中有一个id为“nav_links”的元素,所以我不知道它为什么会返回null。