求助,JS下,通过类名获取对象无效的问题

Olivert_Vz 2018-05-05 01:26:37

getElementsByTagName()和getElementById()都没问题,唯独getElementsByClassName()无法执行,用的chrome应该不是浏览器问题,求抓BUG。

<script type="text/javascript">
window.onload = function(){
var la = document.getElementById("jerk");
var lis = document.getElementsByTagName('li');
var divs = document.getElementsByClassName("f-r");
for(i=0;i<lis.length;i++){
divs[i].style.backgroundImage='url(../bg/bg'+i+'.jpg)';
lis[i].index= i;
lis[i].onmouseover = function(){
for(i=0;i<lis.length;i++){
lis[i].className="js";
divs[lis[i].index].style.display = "none";
divs[lis[i].index].className="";
}
this.className='jj';
jerk.innerHTML='所选中对象的索引值为'+this.index;
divs[this.index].style.display = 'block';
}
}
}
</script>
...全文
848 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-05-05
  • 打赏
  • 举报
回复
因为document.getElementsByClassName()返回的集合是动态实时更新的。 当你改变了集合中元素的className,此元素就会自动从集合中移除。 如 <div class="a"></div> <script type="text/javascript"> var as = document.getElementsByClassName("a"); alert(as.length);//输出1 as[0].className = ""; alert(as.length);//输出0 </script>
天际的海浪 2018-05-05
  • 打赏
  • 举报
回复
getElementsByTagName()也是如此

87,885

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧