这是我到目前为止所尝试的。没有得到如何只更新数组中的变量值
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
}
});
我希望每次在数组
中找到重复项时,将qty变量值增加+1答案 0 :(得分: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
会根据输入字段的值进行更新。
答案 1 :(得分:0)
首先,您可以找到indexOf
的价值指数:
var index = allVals.indexOf(jQuery(this).val());
然后,您只能按=
运算符更新值:
allVals[index] = qty // "qty" after update value