【问题标题】:Need to add delete button and remove the selected tab only in bootstrap tabs需要添加删除按钮并仅在引导选项卡中删除选定的选项卡
【发布时间】:2019-12-11 14:50:05
【问题描述】:

我正在开发旅游网站,我需要在管理部分设置引导选项卡。我已经完成了一些部分,例如动态创建选项卡选项。

我遇到的问题是当我按下删除按钮时它可以工作,但它会删除所有内容而不是只删除 仅选定的选项卡。请帮我解决这个问题。

代码如下:

$(document).ready(function(e) {

  
  //Remove rows from the form
  $('#itinerary_tab_content').on('click', '#deletetab', function(e){

    $(this).closest('#itinerary_tab_nav').remove();
    $(this).closest('#itinerary_tab_content').remove();

  });
});
.btn-remove{
  float: right;
  position: relative;
  top: -31px;
  right: -31px;
  border-radius: 0 5px 0px 0px;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

<div class="tab-regular ">
                <ul class="nav nav-tabs" id="itinerary_tab_nav" role="tablist">
                    <li class="nav-item " title="Itinerary Day - 1">
                        <a class="nav-link active py-2 px-3" id="tab-outline-1" data-toggle="tab" href="#outline-1" role="tab" aria-controls="outline-1" aria-selected="true">
                          Day#1
                        </a>
                    </li>
                    <li class="nav-item " title="Itinerary Day - 2">
                        <a class="nav-link py-2 px-3" id="tab-outline-2" data-toggle="tab" href="#outline-2" role="tab" aria-controls="outline-2" aria-selected="true">
                          Day#2
                        </a>
                    </li>
                    <li class="nav-item " title="Itinerary Day - 3">
                        <a class="nav-link  py-2 px-3" id="tab-outline-3" data-toggle="tab" href="#outline-3" role="tab" aria-controls="outline-3" aria-selected="true">
                          Day#3
                        </a>
                    </li>
                </ul>
                <div class="tab-content container" id="itinerary_tab_content">
                
                    <div class="tab-pane active fade show" id="outline-1" role="tabpanel" aria-labelledby="tab-outline-1">
                      <div class="form-group row p-0 m-0"><div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                    Form - 1  
                    </div>
                    
                    <div class="tab-pane fade show" id="outline-2" role="tabpanel" aria-labelledby="tab-outline-2">
                      <div class="form-group row p-0 m-0"><div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                    Form - 2  
                    </div>
                    
                    <div class="tab-pane fade show" id="outline-3" role="tabpanel" aria-labelledby="tab-outline-3">
                      <div class="form-group row p-0 m-0"><div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                    Form - 3 
                    </div>
                </div>
            </div>

【问题讨论】:

    标签: jquery html twitter-bootstrap bootstrap-4


    【解决方案1】:

    在您的 jquery 中使用 .parentsUntil('#itinerary_tab_content') 它将适用于动态

    $(this).parentsUntil('#itinerary_tab_content').remove();
    $('#itinerary_tab_nav > li > a.active').remove();
    

    $(document).ready(function(e) {
    
      
      //Remove rows from the form
      $('#itinerary_tab_content').on('click', '#deletetab', function(e){
    
        //$(this).closest('#itinerary_tab_nav').remove();
       // $(this).closest('#itinerary_tab_content').remove();
    
     $(this).parentsUntil('#itinerary_tab_content').remove();
     $('#itinerary_tab_nav > li > a.active').remove();
      });
    });
    .btn-remove{
      float: right;
      position: relative;
      top: -31px;
      right: -31px;
      border-radius: 0 5px 0px 0px;
    }
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    
    <div class="tab-regular ">
                    <ul class="nav nav-tabs" id="itinerary_tab_nav" role="tablist">
                        <li class="nav-item " title="Itinerary Day - 1">
                            <a class="nav-link active py-2 px-3" id="tab-outline-1" data-toggle="tab" href="#outline-1" role="tab" aria-controls="outline-1" aria-selected="true">
                              Day#1
                            </a>
                        </li>
                        <li class="nav-item " title="Itinerary Day - 2">
                            <a class="nav-link py-2 px-3" id="tab-outline-2" data-toggle="tab" href="#outline-2" role="tab" aria-controls="outline-2" aria-selected="true">
                              Day#2
                            </a>
                        </li>
                        <li class="nav-item " title="Itinerary Day - 3">
                            <a class="nav-link  py-2 px-3" id="tab-outline-3" data-toggle="tab" href="#outline-3" role="tab" aria-controls="outline-3" aria-selected="true">
                              Day#3
                            </a>
                        </li>
                    </ul>
                    <div class="tab-content container" id="itinerary_tab_content">
                    
                        <div class="tab-pane active fade show" id="outline-1" role="tabpanel" aria-labelledby="tab-outline-1">
                          <div class="form-group row p-0 m-0">
                          <div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                        Form - 1  
                        </div>
                        
                        <div class="tab-pane fade show" id="outline-2" role="tabpanel" aria-labelledby="tab-outline-2">
                          <div class="form-group row p-0 m-0"><div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                        Form - 2  
                        </div>
                        
                        <div class="tab-pane fade show" id="outline-3" role="tabpanel" aria-labelledby="tab-outline-3">
                          <div class="form-group row p-0 m-0"><div class="col-md-12 p-0 m-0 pt-5 pr-4"><button class="btn btn-danger btn-sm btn-remove" id="deletetab" type="button"><i class="fas fa-times">X</i></button></div></div>
                        Form - 3 
                        </div>
                    </div>
                </div>

    【讨论】:

    • 非常感谢@Udhay 的帮助,但不是同时删除选项卡的导航链接和选项卡的内容,而是仅删除选项卡的内容。但我需要删除两者。
    • 我添加了这一行 $(this).parentsUntil('#itinerary_tab_nav').remove();但它不工作。你有什么想法吗?这对我有很大的帮助。
    • 你想删除整个标签like this
    • 是的,但是当我按下删除按钮时只有选定的选项卡
    • @PawanMall 在您的 jquery 中使用此 $('#itinerary_tab_nav &gt; li &gt; a.active').remove(); 或查看更新后的答案
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2015-06-14
    相关资源
    最近更新 更多