当数字达到嵌套循环内的每个第 n 个值时
When number reaches every nth value inside nested loop
用途:用户可以选择产品类型和该产品类型的变体。我需要跟踪添加的每个产品类型以及添加的变体数量。例如,
项目 1:衬衫 > 长袖 (1)
item 2: 衬衫 > V 领 (3)
item 3: 裤子 > 牛仔裤 (1)
总金额与产品的变化有关。每当用户选择相同类型的第 4 个变体时,我希望发生一些事情。对于此示例,我希望产品类型 Shirt 发生一些变化,因为当前长袖 + 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 日
这个怎么样:如果选择了 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');
}
});
});
首先,你的代码中有一个错误,它是你在嵌套循环中 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
}
});
});
用途:用户可以选择产品类型和该产品类型的变体。我需要跟踪添加的每个产品类型以及添加的变体数量。例如,
项目 1:衬衫 > 长袖 (1)
item 2: 衬衫 > V 领 (3)
item 3: 裤子 > 牛仔裤 (1)
总金额与产品的变化有关。每当用户选择相同类型的第 4 个变体时,我希望发生一些事情。对于此示例,我希望产品类型 Shirt 发生一些变化,因为当前长袖 + 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 日
这个怎么样:如果选择了 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');
}
});
});
首先,你的代码中有一个错误,它是你在嵌套循环中 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
}
});
});