【问题标题】:how to dynamically Add collapse class to multiple divs of same class using jquery如何使用jquery将折叠类动态添加到同一类的多个div
【发布时间】:2020-04-23 01:54:46
【问题描述】:

我有一个包含多个相同类 div 的页面,我想为所有 div 动态添加折叠类。

我的html:

<div class="section-title"></div>
<div class="section-text"></div>

<div class="section-title"></div>
<div class="section-text"></div> 

<div class="section-title"></div>
<div class="section-text"></div> 

我的 jquery :

var numItems = $('.section-title').length;

var i;
for(i='0';i<numItems;i++) {
    $(".section-title ").attr("data-toggle", "collapse");
    $(".section-title ").attr("data-target", "#collapseOne"+i);
    $(".section-text ").attr("data-toggle", "collapse");
    $(".section-text").attr("id", "collapseOne"+i);
}

但这不起作用,因为我想为 div 附加 collpaseOne1、collpaseOne2、collpaseOne3 类,但它正在为所有 div 附加 collpaseOne3。

【问题讨论】:

    标签: jquery twitter-bootstrap-3


    【解决方案1】:

    类似的东西

    $(function(){
    
    
      const $sections = $('.section-title')
      
      for (let i = 0; i< $sections.length; i++){
      
        const $section = $sections.eq(i)
        const $sectionText = $section.next()
        
        $section.text(`Section ${i}`)
        $sectionText.text(`Section Text ${i}`)
        
        const targetId = `section_${i}`
        $sectionText.attr('id',targetId)
        $sectionText.addClass('collapse')
       
        $section.attr('data-toggle','collapse')
        $section.attr('data-target',`#${targetId}`)
    
      }
    
    })
    .section-title{
      font-weight:bold;
      cursor:pointer;
      padding:.5em;
    }
    
    .section-text{
       padding:.5em;
       margin-bottom:1em;
    }
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    
    <div class="section-title"></div>
    <div class="section-text"></div>
    
    <div class="section-title"></div>
    <div class="section-text"></div> 
    
    <div class="section-title"></div>
    <div class="section-text"></div> 

    【讨论】:

      【解决方案2】:

      那是因为你每次都针对所有一个,需要单独执行操作

      $(".section-title").each(function(i, element){
        $(this).attr({
          "data-toggle": "collapse",
          "data-target": "#collapseOne"+i
        })
      });
      
      $(".section-text").each(function(i, element){
        $(this).attr({
          "data-toggle": "collapse",
          "id": "collapseOne"+i
        })
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-28
        • 1970-01-01
        • 1970-01-01
        • 2011-05-09
        • 2018-10-31
        • 2017-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多