我正在开发一个电子商务购物车,它通过PHP foreach()循环构建产品,在<tr>
中添加每个产品。
这个商店有'捆绑'产品,这意味着有几个<tr>
属于一个大产品。
客户要我编辑购物车视图,添加一些东西,移动一些。所以我使用jQuery在每个头项之后添加(即)一个图例,如下所示:
<tr>---- Item ----</tr>
<tr>Added row</tr>
<tr>Detail</tr>
<tr>Detail</tr>
<tr>---- Item ----</tr>
<tr>Added row</tr>
<tr>Detail</tr>
<tr>Detail</tr>
<tr>Detail</tr>
<tr>---- Item ----</tr>
<tr>Added row</tr>
<tr>Detail</tr>
<tr>Detail</tr>
<tr>Detail</tr>
<tr>Detail</tr>
现在,由于种种原因,我需要确定每组产品。我通过在每个头项中添加$i
计数来实现此目的。
问题是添加的行是由jQuery在foreach循环之外创建的,所以没有$i
计数就像其余的一样,结果如下:
<tr class="head_1">---- Item ----</tr>
<tr>Added row</tr>
<tr class="detail_1">Detail</tr>
<tr class="detail_1">Detail</tr>
<tr class="head_2">---- Item ----</tr>
<tr>Added row</tr>
<tr class="detail_2">Detail</tr>
<tr class="detail_2">Detail</tr>
<tr class="detail_2">Detail</tr>
<tr class="head_3">---- Item ----</tr>
<tr>Added row</tr>
<tr class="detail_3">Detail</tr>
<tr class="detail_3">Detail</tr>
<tr class="detail_3">Detail</tr>
<tr class="detail_3">Detail</tr>
我需要的是在类中添加相同的计数到添加的jQuery行。我对任何人都不知道怎么办?
Moar详情
我使用jQuery('tr.head').after()
添加行,如下所示:
jQuery( ".mainitem" ).after( "\
<tr class='addedrow'>\
<td class='product-remove'></td>\
<td class='product-thumbnail'></td>\
<td class='product-name'></td>\
<td class='product-price'></td>\
<td class='product-quantity'></td>\
<td class='product-subtotal'></td>\
</tr>"
);
并认为我可以得到这样添加的行的计数:var $rowcount = jQuery(".addedrow").length;
答案 0 :(得分:2)
这可能是最简单的解决方法:我将此添加到添加了行的jQuery脚本中,并且它有效:)
is_test
虽然给出的答案似乎都是正确的,但需要我在代码中使用的不同结构。谢谢大家让我走上正轨!
答案 1 :(得分:1)
jQuery('tr.head').after(function() {
var current = this.prop('className');
var arr = current.split('_');
return "<tr class='"+arr[1]+"'>" + Added row + "</tr>";
});
答案 2 :(得分:1)
这对你有用吗?在var中定义head项,然后你可以拆分该类来获取id。如果有多个,你可以像这样使用jquery的.each():
jQuery( ".mainitem" ).each(function(){
var mainItem = $(this);
var id = mainItem.attr("id").split("_")[1];
mainItem.after( "\
<tr class='addedrow groupid_"+ id +"'>\
<td class='product-remove'></td>\
<td class='product-thumbnail'></td>\
<td class='product-name'></td>\
<td class='product-price'></td>\
<td class='product-quantity'></td>\
<td class='product-subtotal'></td>\
</tr>"
);
});
这当然是假设你的标题tr将mainitem作为类,哦这可能会导致问题,因为我们正在拆分下划线,而类会像“mainitem header_1”一样,这样可行,但如果它是“ header_1 mainitem“我们需要改变。但你可以拆分空间并使用正确的空间。
必须添加,这一切都感觉有点脏:)所以你可能最好将header_1添加为id,这样你就可以确定它没有嵌套多个类,或者使用data-header-id属性,更清洁。