目的:用户可以选择产品类型和该产品类型的变体。我需要跟踪添加的每个产品类型以及添加了多少变体。例如,
第1项:衬衫>长袖(1)
第2项:衬衫> V领(3)
第3项:裤子>牛仔裤(1)
总金额与产品的变化有关。每当用户选择相同类型的第四个变体时,我想要发生一些事情。对于这个例子,我想要产品类型衬衫发生一些事情,因为目前长袖+ v领= 4
我有两个嵌套循环。第一个是循环遍历每个产品类型,内循环应循环遍历每个变体并获得总和。
这是一个很好的起点,但我似乎无法通过for循环来检查变量总数的每个第n个值。
jQuery('.product').each(function(i, objP){
var sum = 0,
min = 4,
max = 5;
jQuery(objP).find('.product-variation-quantity').each(function(ii, objC){
sum += parseInt(jQuery(objC).text());
return sum;
for ( var x = 0; x < min * max; x += min) {
if ( sum == x ) {
var sum_id = jQuery(objP).attr('id');
console.log(sum_id);
//product quantity has reached min to pass
}
else {
//has not reached min
}
}
});
});
有任何帮助吗?
注意:objP和objC用于跟踪上下文this
注意2:澄清:每4,8,12等值,会发生一些事情,而不是每隔4,5,6,
答案 0 :(得分:0)
这个怎么样:如果选择了8个相同变体的项目,控制台将会读取
[id] has crossed 2x4 items
代码:
jQuery('.product').each(function(i, objP){
var min = 4,
max = 5,
sum_id;
jQuery(objP).find('.product-variation-quantity').each(function(ii, objC){
var count = parseInt(jQuery(objC).text());
if ( count < min ) {
//product quantity has not reached min
}
else {
// product quantity has reached min to pass
sum_id = jQuery(objP).attr('id');
console.log(sum_id + ' has crossed ' + min + 'x'
+ Math.floor(count/min) + ' items');
}
});
});
答案 1 :(得分:0)
首先,您的代码中存在错误,它是嵌套循环中return sum;
的位置。此后的for
循环将永远不会执行。
我建议使用此代码:
jQuery('.product').each(function(i, objP){
var sum = 0,
min = 4,
max = 5;
var ind = 1;
jQuery(objP).find('.product-variation-quantity').each(function(ii, objC){
sum = parseInt(jQuery(objC).text());
if (sum > 0 && sum % 4 == 0) {
// Do something
}
});
});