javascript列表,内容切换就像手风琴一样,

javascript列表,内容切换就像手风琴一样,,javascript,list,toggle,accordion,Javascript,List,Toggle,Accordion,我对纯JS列表有一个问题。我希望在单击特定的li后显示包含内容的div(在每个li下面)。不知道该怎么做。我可以显示一个“内容”块,也可以一次显示所有内容(通过添加现在评论的一次。任何帮助都将不胜感激 const channelList = document.getElementById("station-list"); channelList.addEventListener("click", function (e) { const target = e.target; i

我对纯JS列表有一个问题。我希望在单击特定的li后显示包含内容的div(在每个li下面)。不知道该怎么做。我可以显示一个“内容”块,也可以一次显示所有内容(通过添加现在评论的一次。任何帮助都将不胜感激

const channelList = document.getElementById("station-list");

channelList.addEventListener("click", function (e) {
    const target = e.target;
    if (target.matches("li")) {
        content.classList.toggle("show");
        //content2.classList.toggle("show");
        //content3.classList.toggle("show");
        //content4.classList.toggle("show");
        //content5.classList.toggle("show");
        //content6.classList.toggle("show");
    }
})

试试这样的方法:

小提琴示例:

  • 您的div必须在li中,否则将具有无效的html
  • 不要使用多个id的内容,content1,content2…这是无用的,而是定义一个类
  • 单击li元素后,找到div元素(将其过滤掉),然后对其应用所需的样式
  • 您需要调整div的布局,使其位于段落下方,目前它位于右侧,但可以进行适当的切换
  • JS

    const getAllLiElements = document.querySelectorAll('li');
    for (let i = 0; i < getAllLiElements.length; i++) {
      let element = getAllLiElements[i];
      element.addEventListener('click', () => {
        const dummyText = Array.from(element.children).filter(htmlNode => htmlNode.tagName === 'DIV')[0]
        dummyText.classList.toggle('show')
      })
    }
    
    const getAllieElements=document.querySelectorAll('li');
    for(设i=0;i{
    const dummyText=Array.from(element.children).filter(htmlNode=>htmlNode.tagName==='DIV')[0]
    dummyText.classList.toggle('show')
    })
    }
    
    尝试以下方法:

    小提琴示例:

  • 您的div必须在li中,否则将具有无效的html
  • 不要使用多个id的内容,content1,content2…这是无用的,而是定义一个类
  • 单击li元素后,找到div元素(将其过滤掉),然后对其应用所需的样式
  • 您需要调整div的布局,使其位于段落下方,目前它位于右侧,但可以进行适当的切换
  • JS

    const getAllLiElements = document.querySelectorAll('li');
    for (let i = 0; i < getAllLiElements.length; i++) {
      let element = getAllLiElements[i];
      element.addEventListener('click', () => {
        const dummyText = Array.from(element.children).filter(htmlNode => htmlNode.tagName === 'DIV')[0]
        dummyText.classList.toggle('show')
      })
    }
    
    const getAllieElements=document.querySelectorAll('li');
    for(设i=0;i{
    const dummyText=Array.from(element.children).filter(htmlNode=>htmlNode.tagName==='DIV')[0]
    dummyText.classList.toggle('show')
    })
    }