简体   繁体   English

单击按钮时更改元素的类

[英]Change class of a element when clicking on a button

To be more specific, i have an div which has an icon in it. 更具体地说,我有一个带有图标的div。 I want it to be so when you click on the div the class in a nav changes but i'm new to javascript so i dont know how to set the javascript to however it might work. 我希望它是这样的,当您单击div时,导航中的类会更改,但是我是javascript的新手,所以我不知道如何将javascript设置为可工作的。 And internet got me too confused and all of the answers were for changing the class in the same div/element. 互联网让我感到困惑,所有答案都是为了在同一个div / element中更改班级。

Here's my html code: 这是我的html代码:

<div class="nav-container">
            <nav id="navdrop" class="top-bar">

!-- Code in between --!

    <div id="mobileNav" class="mobile-toggle">
      <i class="icon icon_menu"></i>
    </div>

Here's my Javascript: 这是我的Javascript:

document.getElementById('mobileNav').onclick = function(){
    var className = '' + navdrop.className + '';
    if ( ~className.indexOf('open-nav') ) {
        this.className = className.replace(' open-nav', '');
    } else {
        this.className += ' open-nav';
    }
}

This is what you want. 这就是你想要的。 Moreover it's in pure Javascript 此外,它使用纯Javascript

 function classToggle() { document.querySelector('#navdrop').classList.toggle('class1'); document.querySelector('#navdrop').classList.toggle('class2'); } document.querySelector('#div').addEventListener('click', classToggle); 
 .class1 { border: solid 1px; } .class2 { border: 0; } 
 <nav id="navdrop" class="class2"> <a href="#">HTML</a> | <a href="#">CSS</a> | <a href="#">JavaScript</a> | <a href="#">jQuery</a> </nav> <br/> <div id="div" >click here</div> 

Use document.getElementById('navdrop') instead of just navdrop 使用document.getElementById('navdrop')而不是navdrop

 document.getElementById('mobileNav').onclick = function(){ var className = '' + document.getElementById('navdrop').className + ''; if ( className.indexOf('open-nav') > -1 ) { document.getElementById('navdrop').className = className.replace('open-nav', ' '); } else { document.getElementById('navdrop').className += ' open-nav'; } } 
 .open-nav{ color : red } 
 <div class="nav-container"> <nav id="navdrop" class="top-bar"> Nav </nav> <div id="mobileNav" class="mobile-toggle"> Test <i class="icon icon_menu"></i> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM