首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在子元素上添加/删除类

如何在子元素上添加/删除类
EN

Stack Overflow用户
提问于 2022-09-07 07:21:01
回答 2查看 41关注 0票数 0

见下面的代码:

代码语言:javascript
复制
.nk-section-icons {
    height: 30px;
    min-width: 30px;
    width: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    position: relative;
    background: yellow;
    margin-bottom: 5px;
}

.nk-section-icons .nk-sec-container {
    r
}

.nk-sec-container {
    height: 100%;
    width: 150px;
    background: green;
    position: absolute;
    left: 50px;
    margin: bottom: 10px;
}

.nk-sec-container.addClass {
    background: red;
}
代码语言:javascript
复制
<div class="nk-section-l-icons">
                <div class="nk-section-icons fav" data-title="Favorites">
                    <div class="nk-sec-container nk-sec-fav-c">

                    </div>
                </div>
                <div class="nk-section-icons recent" data-title="Recent">
                    <div class="nk-sec-container nk-sec-recent-c">
                        
                    </div>
                </div>
                <div class="nk-section-icons notifs" data-title="Notifications">
                    <div class="nk-sec-container nk-sec-notif-c">
                        
                    </div>
                </div>
            </div>

代码语言:javascript
复制
const hrdBtn = document.querySelectorAll(".nk-section-icons")
hrdBtn.forEach((hrdBtns)=> {
    hrdBtns.addEventListener("click", (container)=> {
        const btnContainer = container.currentTarget.children[0]

        btnContainer.classList.toggle("addClass")
    })
})
代码语言:javascript
复制
.nk-section-icons {
    height: 30px;
    min-width: 30px;
    width: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    position: relative;
    background: yellow;
    margin-bottom: 5px;
}

.nk-section-icons .nk-sec-container {
    r
}

.nk-sec-container {
    height: 100%;
    width: 150px;
    background: green;
    position: absolute;
    left: 50px;
    margin: bottom: 10px;
}

.nk-sec-container.addClass {
    background: red;
}
代码语言:javascript
复制
<div class="nk-section-l-icons">
                <div class="nk-section-icons fav" data-title="Favorites">
                    <div class="nk-sec-container nk-sec-fav-c addClass">

                    </div>
                </div>
                <div class="nk-section-icons recent" data-title="Recent">
                    <div class="nk-sec-container nk-sec-recent-c">
                        
                    </div>
                </div>
                <div class="nk-section-icons notifs" data-title="Notifications">
                    <div class="nk-sec-container nk-sec-notif-c">
                        
                    </div>
                </div>
            </div>

有人能帮我吗,目前我的javascript正在工作--它正在添加和删除类addClass?但是我需要再次单击按钮来删除addClass。我的目标是我希望我的代码,如果我点击第二个按钮,addClass在我的孩子的第一个div将删除,它将转移到第二个按钮的孩子的div。

EN

回答 2

Stack Overflow用户

发布于 2022-09-07 07:31:16

代码语言:javascript
复制
const hrdBtn = document.querySelectorAll(".nk-section-icons")
hrdBtn.forEach((hrdBtns)=> {
    hrdBtns.addEventListener("click", (container)=> {
    
        // new code: remove active state on all others
        hrdBtn.forEach(button => button.children[0].classList.remove('addClass'))
        
        const btnContainer = container.currentTarget.children[0]

        btnContainer.classList.toggle("addClass")
    })
})
代码语言:javascript
复制
.nk-section-icons {
    height: 30px;
    min-width: 30px;
    width: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    position: relative;
    background: yellow;
    margin-bottom: 5px;
}

.nk-section-icons .nk-sec-container {
    r
}

.nk-sec-container {
    height: 100%;
    width: 150px;
    background: green;
    position: absolute;
    left: 50px;
    margin: bottom: 10px;
}

.nk-sec-container.addClass {
    background: red;
}
代码语言:javascript
复制
<div class="nk-section-l-icons">
                <div class="nk-section-icons fav" data-title="Favorites">
                    <div class="nk-sec-container nk-sec-fav-c addClass">

                    </div>
                </div>
                <div class="nk-section-icons recent" data-title="Recent">
                    <div class="nk-sec-container nk-sec-recent-c">
                        
                    </div>
                </div>
                <div class="nk-section-icons notifs" data-title="Notifications">
                    <div class="nk-sec-container nk-sec-notif-c">
                        
                    </div>
                </div>
            </div>

票数 0
EN

Stack Overflow用户

发布于 2022-09-07 07:49:14

因为addClass只有一个元素,所以可以选择带有document.querySelector(".addClass")的元素并删除类。

代码语言:javascript
复制
const hrdBtn = document.querySelectorAll(".nk-section-icons")
hrdBtn.forEach((hrdBtns)=> {
  hrdBtns.addEventListener("click", (container)=> {

    document.querySelector(".addClass").classList.remove("addClass");

    const btnContainer = container.currentTarget.children[0];
    btnContainer.classList.toggle("addClass");
  })
})
代码语言:javascript
复制
.nk-section-icons {
  height: 30px;
  min-width: 30px;
  width: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  position: relative;
  background: yellow;
  margin-bottom: 5px;
}

/*.nk-section-icons .nk-sec-container {
  r
}*/

.nk-sec-container {
  height: 100%;
  width: 150px;
  background: green;
  position: absolute;
  left: 50px;
  margin: bottom: 10px;
}

.nk-sec-container.addClass {
  background: red;
}
代码语言:javascript
复制
<div class="nk-section-l-icons">
  <div class="nk-section-icons fav" data-title="Favorites">
    <div class="nk-sec-container nk-sec-fav-c addClass"></div>
  </div>
  <div class="nk-section-icons recent" data-title="Recent">
    <div class="nk-sec-container nk-sec-recent-c"></div>
  </div>
  <div class="nk-section-icons notifs" data-title="Notifications">
    <div class="nk-sec-container nk-sec-notif-c"></div>
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73631512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档