Javascript 一次打开一个标题

Javascript 一次打开一个标题,javascript,arrays,toggle,Javascript,Arrays,Toggle,在我的JS类中,我的任务是编辑FAQ应用程序,只是一次只能显示一个答案。换句话说,当用户单击标题以显示文本时,其他答案必须隐藏。就我的一生而言,我不知道我需要做些什么来关闭其他标题 "use strict"; var $ = function(id) { return document.getElementById(id); }; // the event handler for the click event of each h2 element var toggle

在我的JS类中,我的任务是编辑FAQ应用程序,只是一次只能显示一个答案。换句话说,当用户单击标题以显示文本时,其他答案必须隐藏。就我的一生而言,我不知道我需要做些什么来关闭其他标题

   "use strict";
   var $ = function(id) { return document.getElementById(id); };

   // the event handler for the click event of each h2 element
   var toggle = function() {
    var h2 = this;                    // clicked h2 tag     
    var div = h2.nextElementSibling;  // h2 tag's sibling div tag

    // toggle plus and minus image in h2 elements by adding or removing a 
   class
    if (h2.hasAttribute("class")) { 
        h2.removeAttribute("class");    
    } else { 
        h2.setAttribute("class", "minus"); 
    }

    // toggle div visibility by adding or removing a class
    if (div.hasAttribute("class")) { 
        div.removeAttribute("class");
    } else { 
        div.setAttribute("class", "open"); 
    } 

   };

   window.onload = function() {
    // get the h2 tags
    var faqs = $("faqs");
    var h2Elements = faqs.getElementsByTagName("h2");

    // attach event handler for each h2 tag     
    for (var i = 0; i < h2Elements.length; i++ ) {
        h2Elements[i].onclick = toggle;
    }
“严格使用”;
var$=函数(id){return document.getElementById(id);};
//每个h2元素的click事件的事件处理程序
var toggle=函数(){
var h2=this;//单击了h2标记
var div=h2.nextElementSibling;//h2标记的同级div标记
//在h2元素中通过添加或删除
班
if(h2.hasAttribute(“类”){
h2.删除属性(“类别”);
}否则{
h2.setAttribute(“类”、“减”);
}
//通过添加或删除类来切换div可见性
if(div.hasAttribute(“类”){
分部移除属性(“类别”);
}否则{
div.setAttribute(“类”、“打开”);
} 
};
window.onload=函数(){
//获取h2标签
var常见问题=$(“常见问题”);
var h2Elements=faqs.getElementsByTagName(“h2”);
//为每个h2标记附加事件处理程序
对于(变量i=0;i
HTML是:

    <h2><a href="#" >What is JavaScript?</a></h2>
    <div>
        <p>JavaScript is a browser-based programming language 
           that makes web pages more responsive and saves round trips to the server.
        </p>
    </div>
    <h2><a href="#">What is jQuery?</a></h2>
    <div>
        <p>jQuery is a library of the JavaScript functions that you're most likely 
           to need as you develop websites.
        </p>
    </div>
    <h2><a href="#">Why is jQuery becoming so popular?</a></h2>
    <div>
        <p>Three reasons:</p>
        <ul>
            <li>It's free.</li>
            <li>It lets you get more done in less time.</li>
            <li>All of its functions are cross-browser compatible.</li>
        </ul>

JavaScript是一种基于浏览器的编程语言
这使网页更具响应性,并节省了往返服务器的时间。

jQuery是一个JavaScript函数库,您很可能 当你开发网站的时候需要。

原因有三:

  • 它是免费的
  • 它可以让你在更短的时间内完成更多的工作
  • 它的所有功能都是跨浏览器兼容的

最简单的方法是从一个隐藏类开始,比如说,在faq的内容上隐藏
,然后单击相关类删除
。隐藏
类,但在此之前,再次将其添加到所有元素中


问题1
回答1

问题2 回答2

const questions=document.querySelectorAll('faq h2');
const answers=document.queryselectoral(“#常见问题解答p”);
问题。forEach(q=>q.addEventListener('click',e=>{
forEach(a=>a.classList.add('hide');
e、 target.nextElementSibling.classList.remove('hide');
}))
p.hide{
显示:无;
}
您可以在此处签出代码:

类似的方法会奏效,而且相当简单

consthideall=()=>document.queryselectoral('.answer').forEach(e=>e.classList.add('hide');
document.addEventListener('单击',(e)=>{
如果(例如,target.matches('a')){
希德尔();
e、 target.parentNode.nextElementSibling.classList.remove('hide');
}
});
.hide{
显示:无;
}

JavaScript是一种基于浏览器的编程语言,它使网页更具响应性,并节省到服务器的往返时间。

jQuery是一个JavaScript函数库,您在开发网站时可能最需要这些函数。

原因有三:

  • 它是免费的
  • 它可以让你在更短的时间内完成更多的工作
  • 它的所有功能都是跨浏览器兼容的

标题都是h2。你能发布示例HTML吗?当然!只是编辑了主要帖子。你对javascript有完全的控制权吗?我假设没有明确的规定说我不喜欢。谢谢!我非常感谢!你不知道这有多大帮助!编码快乐!!