javascript中querySelectorAll和getElementsByClassName的问题

我先是在图一的script中用getElementsByClassName获取元素aW实现浏览器宽度改变时aW两个类名的切换然后发现oCW<1200后类名变为MiniWc... 我先是在图一的script中用getElementsByClassName获取元素aW 实现浏览器宽度改变时aW两个类名的切换 然后发现oCW<1200后类名变为MiniW clearfix 再把浏览器拉回1200就变不回去了 console里显示第一次改变类名后就查不到元素 所以我把getElementsByClassName换成了querySelectorAll就没有问题了 网上查资料说是getE是动态获取 queryS是静态获取 可是我又做了图2的测试 发现用getElementsByClassName两个类名可以来回切换没问题 即使第一次类名改变后 也能进行第二次类名改变 这是为什么 展开
 我来答
网海1书生
科技发烧友

2018-07-27 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
你两张图实现的过程其实是有差别的,在图2中,oDiv后面的值是带[0]的,也就是说oDiv是getElementsByClassName("div1")的子对象,而这个子对象已经是个静态对象了,改变它的class并不会使它消失。如果你把[0]去掉,再把下面的代码改为 oDiv[0].className = ... ,你马上就能看到和图1一样的结果了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式