首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML操作不起作用的javascript函数

HTML操作不起作用的javascript函数
EN

Stack Overflow用户
提问于 2022-12-02 02:48:01
回答 1查看 37关注 0票数 -1

当单击'skills__open‘div时,这个js代码应该将类属性'skills__close’的值更改为'skills__header‘。它在第一次单击时将“skills__open”更改为“skills__close”,但在第一次单击之后,它将无法工作。

Js

代码语言:javascript
复制
const skillsContent = document.getElementsByClassName('skills__content'),
      skillsHeader = document.querySelectorAll('.skills__header')

function toggleSkills(){ 
    let itemClass = this.parentNode.ClassName
    for(i=0; i < skillsContent.length; i++){
        skillsContent[i].className = 'skills__content skills__close'
    }
    if(itemClass === 'skills__content skills__close'){
        this.parentNode.className = 'skills__content skills__open'
    } 
}
skillsHeader.forEach((el) =>{
    el.addEventListener('click', toggleSkills)
});

Html

代码语言:javascript
复制
<div class="skills__content skills__open">
   <div class="skills__header">
</div>
<div class="skills__content skills__close">
    <div class="skills__header">
</div>
<div class="skills__content skills__close">
    <div class="skills__header">
</div>

css

代码语言:javascript
复制
.skills__open .skills__list{
  height: max-content;
  margin-bottom: var(--mb-2-5);
}
.skills__open .skills__arrow{
  transform: rotate(-180deg);
}

没什么大不了的

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 03:16:59

试一试:

代码语言:javascript
复制
const skillsContents = document.querySelectorAll('.skills__content');

skillsContents.forEach( skc =>
  {
  skc
  .querySelector('.skills__header')
  .addEventListener('click', () =>
    {
    skillsContents.forEach( el =>
      {
      if (skc===el) el.classList.replace('skills__close','skills__open')
      else          el.classList.replace('skills__open','skills__close')
      })
    })
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74650352

复制
相关文章

相似问题

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