Javascript 有没有办法防止在HTMLi';我使用bootstrap 4在一页中折叠20次 可折叠组项目#1 可折叠组项目#2 动物教区的陈词滥调reprehenderit,enim eiusmod high life accusamus wolf moon放了一个 工艺啤酒智囊团。纯素食主义者,屠夫副洛莫。绑腿农场- 可折叠组项目#3 动物教区的陈词滥调,埃尼姆·埃乌斯莫德的高生命accusamus terry wolf moon Nihil anim keffiyeh helvetica,工艺啤酒工人是一位卓越的智者。纯素广告

Javascript 有没有办法防止在HTMLi';我使用bootstrap 4在一页中折叠20次 可折叠组项目#1 可折叠组项目#2 动物教区的陈词滥调reprehenderit,enim eiusmod high life accusamus wolf moon放了一个 工艺啤酒智囊团。纯素食主义者,屠夫副洛莫。绑腿农场- 可折叠组项目#3 动物教区的陈词滥调,埃尼姆·埃乌斯莫德的高生命accusamus terry wolf moon Nihil anim keffiyeh helvetica,工艺啤酒工人是一位卓越的智者。纯素广告,javascript,html,css,bootstrap-4,Javascript,Html,Css,Bootstrap 4,您好,我已经在我的代码上复制和粘贴了10-20次,更改了id、标题id和按钮。我还复制和粘贴了一堆其他html代码(图像标签约20幅图像),我想知道是否有办法停止使用纯html css重复代码(如函数)。如果没有,你能用纯香草js吗?如果没有,还有什么其他方法 总之 最重要的问题(A是最重要的C是最不重要的) A) 有没有办法防止使用折叠代码重复代码 上面是纯HTML/CSS吗?如果是,怎么做 B) 有没有办法防止使用折叠代码重复代码 上面是纯HTML/CSS/vanilla js吗?如果是,

您好,我已经在我的代码上复制和粘贴了10-20次,更改了id、标题id和按钮。我还复制和粘贴了一堆其他html代码(图像标签约20幅图像),我想知道是否有办法停止使用纯html css重复代码(如函数)。如果没有,你能用纯香草js吗?如果没有,还有什么其他方法

总之

最重要的问题(A是最重要的C是最不重要的)

  • A) 有没有办法防止使用折叠代码重复代码 上面是纯HTML/CSS吗?如果是,怎么做
  • B) 有没有办法防止使用折叠代码重复代码 上面是纯HTML/CSS/vanilla js吗?如果是,怎么做
  • C) 有没有办法防止使用折叠代码重复代码 上面只是纯HTML/CSS/angular/react?如果是,怎么做

    • 在纯HTML/CSS中,这是不可能的,除非您使用带有某种模板语言的服务器端呈现

      至于使用纯HTML/CSS/JS,ECMAScript 262在这里介绍了非常有效的方法:

          <div class="card" style>
            <div class="card-header" id="headingOne">
              <h5 class="mb-0">
                <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria- 
      expanded="true" aria-controls="collapseOne">
                                Collapsible Group Item #1
                            </button>
              </h5>
            </div>
            <!-- Add mx-auto -->
            <div id="collapseOne" class="collapse show text-center mx-auto" aria-labelledby="headingOne" 
       style="width:300px;">
              <div class="card-body">
                <div class="card">
                  <div class="card-header text-center" id="headingTwo" style="width:300px;">
                    <h5 class="mb-0">
                      <button class="btn btn-link collapsed text-center" data- toggle="collapse" data- 
         target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" style="width:300px;">
                                            Collapsible Group Item #2
                                        </button>
                    </h5>
                  </div>
                  <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo">
                    <div class="card-body">
                      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus wolf moon put a 
                      craft beer sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings farm-
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
      
          <div class="card">
            <div class="card-header" id="headingThree">
              <h5 class="mb-0">
                <button class="btn btn-link collapsed" data-toggle="collapse" data- target="#collapseThree" 
       aria-expanded="false" aria-controls="collapseThree">
                                Collapsible Group Item #3
                            </button>
              </h5>
            </div>
            <div id="collapseThree" class="collapse" aria-labelledby="headingThree">
              <div class="card-body">
                Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry wolf moon 
                et. Nihil anim keffiyeh helvetica, craft beer labore wes sapiente ea proident. Ad vegan 
              </div>
            </div>
          </div>
        </div>
      

      作为Polygenome答案的延伸

      您可以通过以下方式在vanilla JavaScript中实现这一点:

      功能附加卡(id、内容){
      设el=document.querySelector(“.card”);
      让内容=document.createTextNode(`
      可折叠组项#${id}
      ${content}
      `);
      el.附件(内容);
      }
      

      希望这有帮助

      您可以使用一个函数来重复您希望复制元素的次数,在下面的代码片段中,我创建了一个函数,该函数将使用克隆
      .card
      节点并进行多次迭代,然后修改克隆节点上使用的ID和属性,下面是选项
      a
      的代码片段:

      function duplicates元素(选择器,numOfDuplicates){
      let元素=document.querySelector(选择器);
      对于(设i=numf重复;i>0;i--){
      让newElement=element.cloneNode(true);
      newElement.querySelector('#headingOne').id=`headingOne-${i}`;
      newElement.querySelector('#collapseOne').id=`collapseOne-${i}`;
      newElement.querySelector('#collapseTwo').id=`collapseTwo-${i}`;
      newElement.querySelector('#headingTwo').id=`headingTwo-${i}`;
      让toggleBtn=newElement.querySelector(“[data target=“#collapseOne”]”);
      toggleBtn.dataset['target']=`collapseOne-${i}`;
      setAttribute('aria-controls','collapseOne-${i}`);
      让toggleBtn2=newElement.querySelector(“[data target=“#collapseTwo”]”);
      toggleBtn2.dataset['target']=`collapseTwo-${i}`;
      setAttribute('aria-controls','collapseTwo-${i}`);
      元素。在(新元素)之后;
      }
      }
      重复元素('.card',4)
      
      
      可折叠组项目#1
      可折叠组项目#2
      动物教区的陈词滥调,埃尼姆·埃乌斯莫德的高级生命accusamus wolf moon把一个工艺啤酒智慧放在了一个冒失的人身上。纯素食主义者,屠夫副洛莫。绑腿农场-
      
      我想我找到了另一个答案,它涉及html
      标记和json来获取数据

      HTML模板 :

      HTML内容模板(
      )元素是一种保存HTML的机制,在加载页面时不会立即呈现HTML,但随后可以在运行时使用JavaScript实例化HTML

      因此,这正是解决这类问题所需要的

      解决方案 首先,需要在json对象中指定按钮文本和卡片内容。这个json可以驻留在一个单独的文件中(如下图所示加载),也可以将json内容放在一个变量中,如JSFIDLE中所示

      1。使用Json文件

      data.json

      <script>
          function createCard(id, content) {
              return `<div class="card">
                          <div class="card-header" id="heading-${id}">
                              <h5 class="mb-0">
                                  <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapse-${id}" aria-expanded="false" aria-controls="collapse-${id}">Collapsible Group Item #${id}</button>
                              </h5>
                          </div>
                          <div id="collapse-${id}" class="collapse" aria-labelledby="heading-${id}">
                              <div class="card-body">
                                  ${content}
                              </div>
                          </div>
                      </div>`;
          }
          $(function(){
              // create one card
              $('#cards').append($(createCard('1', "Lorem ipsum")));
              // create nested cards
              $('#cards').append($(createCard('2', createCard(3, "Dolor sit amnet"))));
          });
      </script>
      
      loadDom
      函数:

      函数loadDom(){
      //从data.json获取数据
      var xobj=新的XMLHttpRequest();
      重写emimetype(“application/json”);
      open('GET','data.json',true);
      xobj.onreadystatechange=函数(){
      if(xobj.readyState==4&&xobj.status==200){
      //解析json
      让dataToLoad=JSON.parse(xobj.responseText);
      //制作卡片
      dataToLoad.forEach((卡,i)=>{
      创建卡片(i,卡片[“按钮”]、卡片[“主体”]);
      });
      }
      };
      xobj.send(空);
      }
      
      2。内联Json
      函数loadDom(){
      //只需指定所需的数据。。。
      var DATATTOLOAD=[{
      
      [
         {
            "button" : "Button 1",
            "body"   : "Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt"
          },
          {
            "button" : "Button 2",
            "body"   : "aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat"
          },
          {
            "button" : "Button 3",
            "body"   : "craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS."
          },
          {
            "button" : "Button 4",
            "body"   : "Lorem ipsum dolor sit amet"
          }
      ]