【发布时间】:2016-01-30 16:39:54
【问题描述】:
我正在开发一个电子商务购物车,它通过 PHP foreach() 循环构建产品,将每个产品添加到 <tr> 中。
这家商店有“捆绑”产品,这意味着几个<tr> 属于一个大产品。
客户要求我编辑购物车视图,添加一些东西,移动一些东西。所以我使用jQuery在每个head-item之后添加(即)一个图例,如下所示:
<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 行中。我不知道该怎么做,有人吗?
摩尔细节
我像这样使用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;
【问题讨论】:
-
如果你使用 PHP 为什么不能使用 php 变量作为计数器?
-
你能展示你用来添加行的jquery吗?您可以获取要添加行的父元素的类并使用其计数器。
-
@SajithaNilan;因为有问题的行是使用 jQuery.after 在 foreach() 循环之外添加的
-
@Ranker;用于添加行的 jQuery 在问题的末尾;按类提取每个“主”行,使用 after() 添加新行。我已经更新了完整的代码
-
尝试用我回答的代码替换你的 jQuery('tr.head').after()。