【问题标题】:Looping through DOM and show hide elements循环遍历 DOM 并显示隐藏元素
【发布时间】:2023-04-03 01:10:02
【问题描述】:

我有一组记录,它们被分成 5 个段,每个段都包裹在一个带有 id 和类的 div 周围。

例如

<div id="myid" class="myclass">
<p>record1</p>
<p>record2</p>    
</div>

显示第一组 5 条记录,其余的则隐藏。 我在下面有一个链接,可以点击查看更多。点击后会显示另外 5 个等。

每个容器都有一个带有 Off 和 On 的类。这告诉我 div 正在显示什么 div 没有显示。

现在我想在每次点击时显示每组记录。 我已经完成了这段代码,但似乎没有用。我的jquery知识有限。

$(document).ready(function () {

// get first reviewBulkContainer and show
$(".reviewBulkContainer:first").show().addClass("On");

$("#showMoreReviews").click(function (e) {
    e.preventDefault();
    $("#reviewContainer .reviewBulkContainer").each(function () {
        if ($(this).hasClass("Off")) {
            $(this).show();
            $(this).removeClass("Off");
            $(this).addClass("On");
            return;
        }

    });
});

但这最终会显示所有记录片段,而不仅仅是一个时间。 谁能帮我解决这个问题?

谢谢...

【问题讨论】:

  • return; 更改为return false; 有帮助吗?这应该像break

标签: javascript jquery


【解决方案1】:

不需要使用each方法,如果要显示第一个类为Off的元素,可以使用:first选择器。

$("#showMoreReviews").click(function (e) {
    e.preventDefault();
    $("#reviewContainer .reviewBulkContainer.Off:first")
                                          .show()
                                          .toggleClass("Off On");
});

【讨论】:

  • 谢谢,效果很好。我不得不通过切换类对代码的文档就绪部分进行修改,但工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多