JS中getElementByClassName的坑
今天写东西练手的时候发现,使用getElementByClassName的时候,如果对元素的ClassName进行修改,那么数组的长度会发生变化。废话不说先看代码。
Document - 锐客网 body {
height: 100%;
width: 100%;
}.nav-list{
position: absolute;
top:0px;
left:0px;
width: 200px;
height:100%;
background: rgb(85, 85, 97);
}.nav-list .nav-title {
text-align: center;
background:rgb(21, 21, 31);
color: white;
margin:0px;
padding:7px;
}
.nav-list ul{
padding:0px;
margin:0px;
}
.nav-list ul li{
list-style-type: none;
}
.nav-list ul li h3{
color:white;
margin:2px;
background:rgb(139, 173, 211);
text-align:center;
padding:6px;
}.hide{
margin:0px;
transition: 1s;
display: none;
}
.on{
margin:0px;
transition: 1s;
}.nav-list ul li h5{
text-align: center;
color: white;
display: block;
margin:2px;
background:rgb(128, 141, 214);
padding:5px;
}Title
-
subtitle
1
1
1
1
-
subtitle
1
2
3
4
5
具体情况就不说了,大致就是侧边栏有两个按钮,点击时绑定了事件,对应隐藏的部分会修改类名进行显示同时提示当前使用getElementByClassName获得的数组长度。
![JS中getElementByClassName的坑](https://img.it610.com/image/info8/827132700651467ca97cc5f805c23e63.jpg)
文章图片
![JS中getElementByClassName的坑](https://img.it610.com/image/info8/9bef67ec7155433cb8e5355ac51ee99f.jpg)
文章图片
后经查询得知使用querySelectAll得到的是静态元素集合,而使用其他方法得到的则是动态的NodeList,是会随着元素变化而发生删减的。
后经过测试最后得到确认上述的结论是正确的。
【JS中getElementByClassName的坑】
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理