单击HTML元素A并用纯JavaScript在B上添加Class
Click HTML element A and add Class on B with pure JavaScript
我不知道我在这里做错了什么。有人能帮忙吗?
JavaScript:function toggleMainNav() {
var navLink = document.getElementsByClassName('nav_link')[0];
var mainNav = navLink.nextSibling;
if ( mainNav.className.match(/(?:^|'s)inactive(?!'S)/) ){
mainNav.className = 'active';
} else{
mainNav.className = 'inactive';
}
}
document.getElementsByClassName('nav_link')[0].addEventListener( 'click' , toggleMainNav );
这是HTML:
<a class="nav_link">☰ Menu</a>
<ul class="inactive">
</ul>
nextSibling
将是包含空格的文本节点。要么扫描,直到你得到nodeType === 1
或使用nextElementSibling
(但检查它是否支持你的目标浏览器)。
旁注:getElementsByClassName
的支持比querySelector
/querySelectorAall
差(例如,IE8有后者,但没有前者),所以您可以考虑使用它们。
旁注2:IE8也没有addEventListener
。
边注3:如果你通过addEventListener
连接你的处理程序,在处理程序中this
将已经是第一个nav_link
,所以你不必再查找它。
旁注4:如果你不给addEventListener
第三个参数,一些旧的浏览器会失败(它以前不是可选的)。为了广泛兼容,请确保在末尾包含false
。
相关文章:
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 如果X与Y的href=匹配,则添加class'活动'-jQuery
- 元素必须单击两次才能添加Class(自定义指令)
- CoffeeScript:如何添加Class,除非
- 无法使用Javascript添加Class
- 带有“;E”;,无法添加Class
- 如何在ng repeat中添加Class
- 单击按钮运行函数并添加Class
- 查找所有禁用的字段并添加Class jquery
- 如何添加class="active"使用Javascript创建菜单栏
- 按顺序向一系列元素添加class
- jQuery:添加Class Active到<与当前页href
- 为具有特定CSS属性的元素添加Class
- 不能为元素添加class
- 添加Class到body>在用户滚动网页后标记
- 单击HTML元素A并用纯JavaScript在B上添加Class
- 为“某些选择”中具有相同父类的所有选项添加Class使用jquery
- 在AngularJs中向多个元素中添加class
- 如果图像宽度小于X,则添加class
- 视频开始时添加class或id