javascript - jQuery nextAll——点击 h 元素切换所有 p 元素直到下一个 h

标签 javascript jquery toggle next

我正在创建一个常见问题解答页面,通过单击问题可以切换答案。问题是 h3,答案是几个 p 元素。像这样:

<h3>The First Question</h3>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>

<h3>The Second Question</h3>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>

如何切换属于某个问题的所有 p 元素?我的 JS 切换页面上所有以下 p 元素:

$(document).ready(function(){
    $("p").hide();
    $("h3").click(function(){
        $(this).nextAll("p").toggle();
    });
});

我不能使用 div 或类)。

最佳答案

执行此操作的最佳方法是使用 each 并进行迭代,直到到达应停止迭代的下一个元素。在 each 期间返回 false 会停止迭代。使用过滤器可以让您在迭代中检查元素的类型并做出适当的响应。

$(function() {
   $("p").hide();
   $("h3").click(function() {
       $(this).nextAll().each( function() {
           if ($(this).filter('h3').length) {
              return false;
           }
           $(this).filter('p').toggle();
       });
   });
});

关于javascript - jQuery nextAll——点击 h 元素切换所有 p 元素直到下一个 h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079938/

相关文章:

c# - 在 gridview asp :hyperlinkfield? 上禁用自动回发

jquery - 使用两个选择表单框但只出现一个

ios - 同一个按钮使用选择器执行多个功能并更新 iOS Objective-C 中的按钮文本

javascript - jQuery 基本切换只能以一种方式工作

javascript - 对 HTML 列表进行排序,然后定位元素

javascript - javascript中的正则表达式用于存储在数组中的负 float 结果

javascript - 出现问题时在模态窗口中显示错误

javascript - 有没有办法使用 JavaScript 或 ajax 在浏览器中导入 SSL 证书?

jquery - 我可以在页面刷新时或离开页面时保留相同的 jQuery 选项卡吗?

jquery - div的定时显示