尝试向元素(ajax购物车中的行)添加递增类名称,同时对其中一个子元素(每个购物车行中的图像)执行相同操作。
项目编号后,显示类名中具有相同编号的匹配图像。
离。 cartitem-1显示cartimage-1
var itemCount=0;
var imgCartCount=0;
if ($('.ajax-cart-row').length) {
// itemize cart rows
$('.ajax-cart-row').each(function() {
itemCount++;
var cartItemNumber = 'cartitem-'+itemCount;
$(this).addClass(cartItemNumber);
$(this).val(itemCount);
console.log('cart numbers loaded');
});
// itemize images in cart
$('.ajax-cart-row img').each(function() {
IMGCount++;
var cartImgs = 'cartimg-'+IMGCount;
$(this).addClass(cartImgs);
$(this).val(IMGCount);
$(this).closest('.ajax-cart-row').find('[class*='+cartImgs+']').show();
console.log('image numbers added');
});
}
编辑:有多个cartitem-#img元素,没有任何单独的类/ ids /文件名。这就是希望如此。
希望我不只是在这里睡眠不足......提前致谢
答案 0 :(得分:1)
我不确定您的确切用途,或者您的代码有什么问题(除了"显示"只是确保元素不被隐藏 - 也许是您的图片默认隐藏?)。看看这样的事情是否有所不同:
var itemCount=0;
if ($('.ajax-cart-row').length) {
// itemize cart rows
$('.ajax-cart-row').each(function() {
itemCount++;
var cartItemNumber = 'cartitem-'+itemCount;
var cartRow = $(this);
cartRow.addClass(cartItemNumber);
cartRow.val(itemCount);
console.log('cart numbers loaded');
// add class to the image subelements (assumes only one, or that the same class is added to all img children of cartitem-#)
var imageIdx = 0;
cartRow.find("img").each(function() {
imageIdx++;
var cartImgs = 'cartimg-'+imageIdx;
var cartImg = $(this);
cartImg.addClass(cartImgs);
cartImg.val(itemCount);
if (imageIdx === itemCount) {
cartImg.show();
}
console.log('image numbers added');
});
});
}

这应该确保列表.ajax-cart-row的所有img子节点都会在类名中收到与接收到的行相同的索引(即cartitem-1中的所有img标签都将收到cartimg-1类) 。我希望这就是你要找的东西。