javascript - jQuery如何选择div中的所有元素

标签 javascript jquery html css

我的网站上有问答部分(FAQ)。

HTML 看起来像这样

<div class="faq">
   <div class="container">

     <!-- FAQ 1 -->
     <h3><a href="">My FAQ 1</a></h3>
     <div><p>Answer to MY FAQ 1</p></div>

     <!-- FAQ 2 -->
     <h3><a href="">My FAQ 1</a></h3>
     <div><p>Answer to MY FAQ 1</p></div>   

     <!-- FAQ 3 -->
     <h3><a href="">My FAQ 1</a></h3>
     <div><p>Answer to MY FAQ 1</p></div>

   </div>    
</div>  

jQuery 看起来像这样

$(document).ready(function() {
    $(".faq h3 a").click(function(){
        $(this).parent().next().toggle();
        return false;
    })
});

这工作正常,但我需要的是,如果有人点击任何一个常见问题解答,并且如果打开任何其他常见问题解答,那么它应该自动关闭。

我试过这样做

$(".faq h3 a").not($(this)).hide();

但它不起作用。

最佳答案

也许不是 jQuery 最优雅的用法

$(document).ready(function() {
    $(".faq h3 a").click(function(){
        var isVis = $(this).parent().next().css('display') == 'block';
        $(".faq h3 + div").hide();
        $(this).parent().next().toggle(!isVis);
        return false;
    })
});

jsfiddle

This should toggle correctly, i.e. click on an open FAQ it will close it

关于javascript - jQuery如何选择div中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35008440/

相关文章:

javascript - 如何使用 PHP 值和输入值作为输入进行动态 JavaScript 调用

java - GWT 运行时 Java 模拟

android - 使用默认 Android 浏览器时强制水平滚动条

javascript - 如何隐藏地址栏中的Url?

javascript - 对用户隐藏密码字段内容

html - 按钮背景颜色未显示在边缘,但适用于 Firefox 和 Chrome

javascript - setTimeout 显示重新加载 div 之前剩余的时间 - AJAX

javascript - 将 HTML 元素作为参数传递给函数与使用 getElementById 获取相同元素

javascript - $.ajax 在我的代码中无法正常工作

html - 在向下滚动时淡化 Bootstrap 导航栏,同时更改文本颜色