2016-05-30 3 views
0

私はこれが非常に奇妙なので、私が直面している問題を説明する方法がわかりません。jQuery DOM要素の値が不思議に小さく

同じオブジェクトのapp_idの値は1で、ボタンbtnAddCartが他の値その間クリックされるたびに減少し、なぜ私は、次のコード

$('body').on('click', '#btnAddCart', function(e){ 
    e.preventDefault(); 
    if ($(":checkbox[name='app_chk']", '#apps_container').is(":checked")) 
    { 
     $('#alert').html(""); 
     console.log(localGet('cart')); 
     var arr = []; 
     var items = []; 
     var subtotal = $('#apps_subtotal').text().trim(); 
     var total = $('#apps_total').text().trim(); 
     var cart = localGet('cart'); 
     var flag = 0; 
     var app_id, index, price, name, i_parent, i_parent_name; 
     $(":checkbox[name='app_chk']:checked").each(function() { 

      index = $('[name=app_chk]').index(this); 
      price = $('[name=app_price]:eq('+index+')').val(); 
      name = $('[name=app_name]:eq('+index+')').val(); 
      i_parent = $('[name=i_parent]:eq('+index+')').val(); 
      i_parent_name = $('[name=i_parent_name]:eq('+index+')').val(); 
      // app_id = $('[name=app_id]:eq('+index+')').val(); 
      app_id = $('[name=app_id]:eq('+index+')').val(); 
      console.log('index: ' + index); 
      console.log('id: ' + app_id); 
      console.log('i_parent: ' + i_parent); 

      var position = checkedInLocalStorage('cart', app_id); 

      if(cart !== null){//the item with the same id exists 
       console.log("pos: "+position); 
       if(position > -1){ 
        //perform update 
        cart[0].items[position].id = app_id; 
        cart[0].items[position].price = price; 
        cart[0].items[position].name = name; 
        cart[0].items[position].i_parent = i_parent; 
        cart[0].items[position].i_parent_name = i_parent_name; 
       }else{ 
        cart[0].items.push({ 
         id : app_id, 
         i_parent : i_parent, 
         price : price, 
         name : name, 
         i_parent_name : i_parent_name 
        }); 
        flag = 1; 
       } 
      }else{ 
       items.push({ 
        id : app_id, 
        i_parent : i_parent, 
        price : price, 
        name : name, 
        i_parent_name : i_parent_name 
       }) 
      } 

     }); 

     if(cart === null) { 
      arr.push({ 
       items: items, 
       subtotal: subtotal, 
       total: total 
      }); 
      console.log(arr); 
      localStore('cart', arr); 
     }else{ 
      cart[0].subtotal = subtotal; 
      cart[0].total = total; 
      localStore('cart', cart); 
      console.log(cart); 
     } 

     displayCart(); 
     $('#cart_wrapper').addClass('visible'); 
     localStorage.removeItem('apps'); 
    } 
    else 
    { 
     showError('Please select at least one app to add to cart'); 
    } 

}); 

のようなボタンのクリックイベントを持っている私にはわかりません要素は問題なく変更されません。コードのapp_idの値を変更する操作はありません。

また、同じインデックスのapp_idの値が不思議に変化することを示すテストログを添付しました。

誰でも問題の原因を知っていますか?

testing log

答えて

0

変数APP_IDは予約変数であるように思えます。 domの名前と変数名をapp_idxに変更した後はすべてうまく動作します