2016-12-27 24 views
0

这是我到目前为止所尝试的。没有得到如何在阵列只更新变量值如何更新数组中的特定变量值?

allVals = []; 
var qty; 
jQuery(".big:checked").each(function() { 
    qty = parseInt(jQuery(this).parents().nextAll().children().find('input[name="quantity"]').val()); 
    if (jQuery.inArray(jQuery(this).val(), allVals) == -1) { 
     allVals.push(jQuery(this).val() + ',' + qty + ',' + 'custcol_name_of_attendees|' + nameatt + '||custcol_email_of_attendees|' + emattendee + '||custcol_event_name|' + eventname + '| |custcol_event_location|' + eventlocation); //not present in array 
    } else { 
     qty = parseInt(jQuery(this).parents().nextAll().children().find('input[name="quantity"]').val()) + 1; 
     // update only qty value in allVals array 
    } 
}); 

我想+1每次在阵列发现重复的项目时间,增加数量变量的值

+0

什么的'('输入的值[NAME =“量“]')。val()'? –

+0

它会给我选定的复选框数量字段值....它将是像1,2,3等整数 – Uidev123

回答

0

编辑:

好吧,现在我想我明白你想要什么。数量不是ID的最好名称。试试这个:

allVals = []; 
jQuery(".big:checked").each(function() { 
    var elements = jQuery(this).parents().nextAll().children().find('input[name="quantity"]'); 

    jQuery(elements).each(function() { 
     var qty = parseInt(this.val()); 
     var id = this.attr('id'); 

     if (qty in allVals) { 
      allVals[qty] += 1; 
     } else { 
      allVals[qty] = 1; 
     } 
    }); 

}); 

===

您的代码将永远找不到阵列中的任何东西。什么你推到你的阵列是

jQuery(this).val() + ',' + qty + ',' + 'custcol_name_of_attendees|' + nameatt + '||custcol_email_of_attendees|' + emattendee + '||custcol_event_name|' + eventname + '| |custcol_event_location|' + eventlocation 

,但你只搜索这个

jQuery(this).val() 

我认为更好的解决办法就是给你输入一个唯一的ID和id in allVals

以检查

数组值永远不会更新。只有qty根据您输入字段的值更新。

+0

谢谢,但我正在寻找数量 – Uidev123

+0

@ Uidev123检查更新的答案。 – pixelarbeit

0

首先,您可以通过indexOf发现的价值指数:

var index = allVals.indexOf(jQuery(this).val()); 

然后,你只能通过=运营商更新值:

allVals[index] = qty // "qty" after update value 
相关问题