Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript if&&检查元素是否有一个类而不是另一个类_Javascript - Fatal编程技术网

使用Javascript 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

我试图使用javascript而不是jquery来查找单击时带有类“button”的元素是否没有“active”类。如果这是真的,我有另外3个If语句来检查相同的点击按钮是否有下面提到的类之一。我无法确定需要将初始IF语句放在何处以查找活动类

这是我到目前为止所拥有的

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是一个箭头函数