jQuery 从每个循环中获取数据并存储在全局变量中
jQuery get data from each loop and store in global variable
我正在编写一些代码以在添加到我的购物车之前获取产品 ID 和数量。我正在循环遍历每个数量大于 0 的产品,然后获取存储在数据属性中的一些信息。
我遇到的问题是输出所有数据。这是我的代码:
jQuery( ".productList .catQuantity" ).each(function( index ) {
var productID = jQuery(this).attr('data-product_id');
var productQu = jQuery(this).attr('data-quantity');
if(productQu > 0){
//console.log(productID+':'+productQu+',');
window.allProducts = (productID+':'+productQu+',');
}
});
console.log(allProducts);
因此上面的代码获取了产品 ID 和数量并将其存储在全局变量中。当 i console.log 变量时,只有最后添加的产品被包含在变量中。
知道这是为什么吗?
您应该将它们附加到变量而不是使用 +=
,否则变量 allProducts
将在循环的每次迭代中被覆盖:
window.allProducts += (productID+':'+productQu+',');
希望对您有所帮助。
使用数组存储所有产品,因为您在最后一项后附加了不必要的逗号。然后,如果需要,只需将此数组转换/显示为字符串:
var allProducts = []
jQuery( ".productList .catQuantity" ).each(function( index ) {
var productID = jQuery(this).attr('data-product_id')
var productQu = jQuery(this).attr('data-quantity')
if (productQu > 0) {
window.allProducts.push(productID + ':' + productQu)
}
})
console.log(allProducts.toString())
我正在编写一些代码以在添加到我的购物车之前获取产品 ID 和数量。我正在循环遍历每个数量大于 0 的产品,然后获取存储在数据属性中的一些信息。
我遇到的问题是输出所有数据。这是我的代码:
jQuery( ".productList .catQuantity" ).each(function( index ) {
var productID = jQuery(this).attr('data-product_id');
var productQu = jQuery(this).attr('data-quantity');
if(productQu > 0){
//console.log(productID+':'+productQu+',');
window.allProducts = (productID+':'+productQu+',');
}
});
console.log(allProducts);
因此上面的代码获取了产品 ID 和数量并将其存储在全局变量中。当 i console.log 变量时,只有最后添加的产品被包含在变量中。
知道这是为什么吗?
您应该将它们附加到变量而不是使用 +=
,否则变量 allProducts
将在循环的每次迭代中被覆盖:
window.allProducts += (productID+':'+productQu+',');
希望对您有所帮助。
使用数组存储所有产品,因为您在最后一项后附加了不必要的逗号。然后,如果需要,只需将此数组转换/显示为字符串:
var allProducts = []
jQuery( ".productList .catQuantity" ).each(function( index ) {
var productID = jQuery(this).attr('data-product_id')
var productQu = jQuery(this).attr('data-quantity')
if (productQu > 0) {
window.allProducts.push(productID + ':' + productQu)
}
})
console.log(allProducts.toString())