使用Javascript if&&检查元素是否有一个类而不是另一个类
我试图使用javascript而不是jquery来查找单击时带有类“button”的元素是否没有“active”类。如果这是真的,我有另外3个If语句来检查相同的点击按钮是否有下面提到的类之一。我无法确定需要将初始IF语句放在何处以查找活动类 这是我到目前为止所拥有的使用Javascript if&&检查元素是否有一个类而不是另一个类,javascript,Javascript,我试图使用javascript而不是jquery来查找单击时带有类“button”的元素是否没有“active”类。如果这是真的,我有另外3个If语句来检查相同的点击按钮是否有下面提到的类之一。我无法确定需要将初始IF语句放在何处以查找活动类 这是我到目前为止所拥有的 for (var b = 0; b < button.length; b++) { button[b].addEventListener('click', function () { //IF EL
for (var b = 0; b < button.length; b++) {
button[b].addEventListener('click', function () {
//IF ELEMENT DOES NOT HAVE CLASS 'ACTIVE' RUN THE BELOW IF STATEMENTS ALSO
if (this.classList.contains('to--section-1')) {
//do something
} else if (this.classList.contains('to--section-2')) {
//do something
} else if (this.classList.contains('to--section-3')) {
//do something
}
});
}
编辑
解决方案
我通过添加if找到了解决方案!this.classList.在顶部包含“active”,并嵌套其他if语句
for (var b = 0; b < button.length; b++) {
button[b].addEventListener('click', function () {
if (!this.classList.contains('active')) {
if (this.classList.contains('to--home')) {
sectionChange();
home.classList.add('active');
navHome.classList.add('active');
upNextKenya.classList.add('active');
} else if (this.classList.contains('to--kenya')) {
sectionChange();
kenya.classList.add('active');
navKenya.classList.add('active');
upNextBotswana.classList.add('active');
} else if (this.classList.contains('to--botswana')) {
sectionChange();
botswana.classList.add('active');
navBotswana.classList.add('active');
upNextSouthAfrica.classList.add('active');
}
sectionTransition();
upNextTransition();
}
});
}
for (var b = 0; b < button.length; b++) {
button[b].addEventListener('click', function () {
if (!this.classList.contains('active')) {
if (this.classList.contains('to--home')) {
sectionChange();
home.classList.add('active');
navHome.classList.add('active');
upNextKenya.classList.add('active');
} else if (this.classList.contains('to--kenya')) {
sectionChange();
kenya.classList.add('active');
navKenya.classList.add('active');
upNextBotswana.classList.add('active');
} else if (this.classList.contains('to--botswana')) {
sectionChange();
botswana.classList.add('active');
navBotswana.classList.add('active');
upNextSouthAfrica.classList.add('active');
}
sectionTransition();
upNextTransition();
}
});
}
我通过添加if找到了解决方案!this.classList.在顶部包含“active”,并嵌套其他if语句
for (var b = 0; b < button.length; b++) {
button[b].addEventListener('click', function () {
if (!this.classList.contains('active')) {
if (this.classList.contains('to--home')) {
sectionChange();
home.classList.add('active');
navHome.classList.add('active');
upNextKenya.classList.add('active');
} else if (this.classList.contains('to--kenya')) {
sectionChange();
kenya.classList.add('active');
navKenya.classList.add('active');
upNextBotswana.classList.add('active');
} else if (this.classList.contains('to--botswana')) {
sectionChange();
botswana.classList.add('active');
navBotswana.classList.add('active');
upNextSouthAfrica.classList.add('active');
}
sectionTransition();
upNextTransition();
}
});
}
for (var b = 0; b < button.length; b++) {
button[b].addEventListener('click', function () {
if (!this.classList.contains('active')) {
if (this.classList.contains('to--home')) {
sectionChange();
home.classList.add('active');
navHome.classList.add('active');
upNextKenya.classList.add('active');
} else if (this.classList.contains('to--kenya')) {
sectionChange();
kenya.classList.add('active');
navKenya.classList.add('active');
upNextBotswana.classList.add('active');
} else if (this.classList.contains('to--botswana')) {
sectionChange();
botswana.classList.add('active');
navBotswana.classList.add('active');
upNextSouthAfrica.classList.add('active');
}
sectionTransition();
upNextTransition();
}
});
}
为什么你不能用if!this.classList.contains'active'{}?将参数e放在按钮[b]中。addEventListener'click',函数e{然后:ife.target不在文档中。getElementsByClassNameactive@Attersson这不是真的。在不是箭头函数的回调函数中,这是元素。换句话说,这===event.currentTargeti已经用我的完整javascript代码更新了我的初始帖子。如果我听到了confusing@Attersson是的,我相信我说过的,只要不是t是一个箭头函数