javascript - 我需要重复多少 javascript jquery 代码?

标签 javascript jquery html

我知道这是一个垒球问题,很抱歉,但是我需要在 .js 脚本文件中重复多少 jquery 代码? (我是编码和自学新手!)

这是我所拥有的,我需要使用 ID 一次打开一个不同的面板。但这其中的某些部分是多余的吗?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

$(document).ready
     (function()
         {$("#details-header-1").click
           (function()
              {$("#details-panel-1").slideToggle("slow");}
            );
          }
           );

$(document).ready
         (function()
             {$("#details-header-2").click
               (function()
                  {$("#details-panel-2").slideToggle("slow");}
                );
              }
           );

等等...

HTML 看起来像这样:

<div id="details-header-1">Click to slide the panel down or up</div>
<div id="details-panel-1">Hello world!</div>

<div id="details-header-2">Click to slide the panel down or up</div>
<div id="details-panel-2>Hello world!</div>

等等...

最佳答案

您可以选择以 details-header 开头的所有 ID,并在 .click 内选择具有相同内容的 details-panel后缀:

$(document).ready(function() {
  $([id^="details-header]").click(function() {
    const num = this.id.match(/\d+$/)[0];
    $(`.details-panel-${num}`).slideToggle("slow");
  });
});

可能有一个更加更优雅的解决方案,但是如果没有看到 HTML 就很难说。

缺少这一点,您还可以为标题和面板提供类,而不是多个不同的 ID:

$(document).ready(function() {
  const headers = $('.details-header');
  const panels = $('.details-panel');
  headers.click(function() {
    const index = headers.index(this);
    $(panels[index]).slideToggle("slow");
  });
});

关于javascript - 我需要重复多少 javascript jquery 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59571559/

相关文章:

javascript - 动态添加时,第二个 Google map 无法正确呈现

javascript - 导航栏向下滚动消失,向上滚动通过滑动重新出现

javascript - 评级/投票和标签 API,它们存在吗?

javascript - 在 Liferay 中添加非 http only cookie

jQuery: $ ('.selector' , myContext) 和 myContext.find ('.selector' ) 之间有功能差异吗?

javascript - 如何通过对象的唯一属性值从数组中获取对象?

html - 将 HTML 文件包含到 Smarty .tpl 文件中

Javascript onClick() 不适用于我的按钮来计算表单输入?

javascript - 在javascript中将字符串日期转换为日期时间,如何使用dateformat

javascript - 如果最初隐藏,则 Twitter 按钮不显示