簡體   English   中英

使用ID交換兩個DIV的位置

[英]Swap Position of two DIV using ID

我正在嘗試更改jquery中兩個DIV的位置,似乎我可能有點困惑,因為它已經在交換位置,但是當這樣做時,它會重復該字段。

我嘗試使用insertBefore和insertAfter。

<div id="before_stops">                                         
   <li><span><img src="<?php echo base_url('assets/images/multi_stops.png') ?>" width="18px"height="18px"/></span>                                             
          <div class="verticalLine"></div>                                         
            <span class="text multi_non_append_stops"></span>                                               
             <br><br>                                            
    </li>                                    
 </div>                                         
<div id="multi_stops">                                           
   <span class="text multi">
     <li><span>
     <img src="<?php echo base_url('assets/images/EndPoint.png')?>" width="18px" height="18px"></span>
     <div class="verticalLine"></div>
    <br/><br>
    </li>
</span>
</div>

這是我的JavaScript代碼:

for (var i = 0; i < data.stops.length; i++) {
  if(value == "A" || value == "B"){
                        $('#multi_stops').insertBefore($('#before_stops'));
                        $('.multi').append('<li><span><img src="' + base_url + 'assets/images/multi_stops.png" width="18px" height="18px"></span><div class="verticalLine"></div>' + data.stops[i].stopDestination + "<br/><br></li>");
}else{
                        $('#multi_stops').insertAfter($('#before_stops'));
                        $('.multi').append('<li><span><img src="' + base_url + 'assets/images/multi_stops.png" width="18px" height="18px"></span><div class="verticalLine"></div>' + data.stops[i].stopDestination + "<br/><br></li>");
                    }
                }

發生的事情不是輸出

如果值為AB

它應該是<div id ="multi_stops"></div> <div id ="before_stops"><div>

但是發生在我身上的是<div id ="multi_stops"></div> <div id ="before_stops"><div> <div id ="multi_stops"></div>

否則,如果該值不是AB ,則應僅為<div id ="before_stops"></div> <div id ="multi_stops"><div>

但是發生了什么事<div id ="before_stops"></div> <div id ="multi_stops"><div> <div id ="multi_stops"></div>

它正在復制。 我在這里做錯了什么。

您需要復制元素,然后將其插入,然后刪除第一個。 否則您最終會重復。 您可以使用jquery 分離方法。 它刪除對象,但保留數據。 像這樣使用它:

for (var i = 0; i < data.stops.length; i++) {
    if (value == "A" || value == "B") {
        $('#multi_stops').detach().insertBefore($('#before_stops'));
        $('.multi').append('<li><span><img src="' + base_url + 'assets/images/multi_stops.png" width="18px" height="18px"></span><div class="verticalLine"></div>' + data.stops[i].stopDestination + "<br/><br></li>");
    } else {
        $('#multi_stops').detach().insertAfter($('#before_stops'));
        $('.multi').append('<li><span><img src="' + base_url + 'assets/images/multi_stops.png" width="18px" height="18px"></span><div class="verticalLine"></div>' + data.stops[i].stopDestination + "<br/><br></li>");
    }
}

嘗試這個:

<div class="holder">
    <div id="before_stops"> 
    </div>
    <div id="multi_stops">  
    </div>
</div>

if(value == "A" || value == "B"){
    $("#before_stops").appendTo(".holder");
}else{
    $("#multi_stops").appendTo(".holder");
}

實時示例: https//codepen.io/noelelias/pen/bGbwwBz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM