2014-08-27 27 views
1

我想下單的細節計數刪除的元素,我有這個數字(見照片):所以這些項目的父容器.co-items-body-inner這是完全的去除 DOM(當我點擊每個.btn-cancel-order時,我點擊了)。jQuery.each()在DOM

<div class="co-items-body"> 
     <div class="co-items-body-inner"> 
      <div class="co-item-body-left"> 
       <img src="assets/images/checkout-item.png" alt="Item1"/> 
      </div> 
      <div class="co-item-body-right"> 
       <div class="cibr-title"> 
        <h1>Parrot Clasp [218]</h1> 
        <h2>6mm 9ct YG [218A6]</h2> 
       </div><!--end cibr-title--> 
       <div class="cibr-body"> 
        <ul> 
         <li class="btn-minus">-</li> 
         <li><input type="text" name="itemcount1" id="itemcount1" class="itemcount" value="2" readonly/></li> 
         <li class="btn-plus">+</li> 
         <li class="amt-per-piece">$7.80</li> 
         <li><img class="btn-cancel-order" src="assets/images/checkout-btn-close.png" alt="Close"/></li> 
        </ul> 
       </div><!--end cibr-body--> 
      </div><!--end co-item-body-right--> 
     </div><!--end co-items-body-inner--> 
     <div class="co-items-body-inner"> 
      <div class="co-item-body-left"> 
       <img src="assets/images/checkout-item.png" alt="Item1"/> 
      </div> 
      <div class="co-item-body-right"> 
       <div class="cibr-title"> 
        <h1>Parrot Clasp [218]</h1> 
        <h2>6mm 9ct YG [218A6]</h2> 
       </div><!--end cibr-title--> 
       <div class="cibr-body"> 
        <ul> 
         <li class="btn-minus">-</li> 
         <li><input type="text" name="itemcount2" id="itemcount2" class="itemcount" value="2" readonly/></li> 
         <li class="btn-plus">+</li> 
         <li class="amt-per-piece">$7.80</li> 
         <li><img class="btn-cancel-order" src="assets/images/checkout-btn-close.png" alt="Close"/></li> 
        </ul> 
       </div><!--end cibr-body--> 
      </div><!--end co-item-body-right--> 
     </div><!--end co-items-body-inner--> 
     <div class="total-amount-container"> 
      <ul> 
       <li><p>Sub-Total: <span class="sub-total">$15.60</span></p></li> 
       <li><p>Shipping: <span class="shipping-amt">$15.00</span></p></li> 
       <li><p>Grand Total: <span class="grandtotal">$30.60</span></p></li> 
      </ul> 
     </div> 
     <div class="co-items-links"> 
      <ul> 
       <li><a href="#">Terms and Conditions</a></li> 
       <li><a href="#">Shipping Details</a></li> 
       <li><a href="#">Returns and Corrections</a></li> 
      </ul> 
     </div> 
    </div><!--END co-items-body--> 

enter image description here

所以我把這個代碼在我close button(X)像這樣:

$(document).on('click','.btn-cancel-order',function(){ 
    $(this).closest('div').parent().fadeOut("slow", function() { 
     $(this).closest('div').parent().remove(); 
    }); 

    $('.itemcount').each(function(){ 
     console.log($(this).val()); 
    }); 
}); 

這裏的.itemcount類是我input field的選擇,所以我的問題是:爲什麼是當.btn-cancel-order正在觸發它給我兩個日誌是2?

據說它會給我1登錄我的控制檯我在這裏錯過了什麼?如果情況如此,我是否需要重置我的$.each() function?我是新來的,所以請耐心等待。

+0

嘿,不相關的,但你可以鏈中刪除()與你的淡出,更少的代碼,清潔:) – Ahmad 2014-08-27 11:00:24

+0

所以你有每個'X'按鈕的代碼? – Justinas 2014-08-27 11:00:26

+0

你有兩個元素iwth .itemcount類,你在這裏選擇他們兩個「$('。itemcount')」這就是爲什麼你得到2日誌。請提供您的html – patrykf 2014-08-27 11:00:35

回答

1

的問題是,淡出有一個延遲,所以你應該淡出回調一樣,做你的行動:

$(document).on('click','.btn-cancel-order',function(){ 
    $(this).closest('.co-items-body-inner').fadeOut("slow", function() { 
     $(this).closest('.co-items-body-inner').remove(); 

     // Your item was removed 
     $('.itemcount').each(function(){ 
      $(this).css('outline', '1px solid red'); 
     }); 
    }); 

    // Your item isn't removed yet 
     $('.itemcount').each(function(){ 
      $(this).css('outline', '1px solid red'); 
     }); 
}); 
+0

不能,因爲我有這個HTML結構我想http://codejaw.com/vsjz3 – leonardeveloper 2014-08-27 11:05:03

+0

你不應該刪除$(this).closest(' .co-items-body-inner')? – 2014-08-27 11:09:08

+0

它和tho一樣。 – leonardeveloper 2014-08-27 11:13:39