【发布时间】:2013-01-17 04:41:23
【问题描述】:
我有两个列表(#product 和 #cart)。人们可以单击一个项目并将其一次移动到第二个列表中。但我希望允许人们将第一个列表中的所有项目添加到第二个列表中。反之亦然 - 从购物车中删除所有商品。
你能帮忙吗?
这是我的html:
<h2>Product List</h2>
<a id="add-all">Add all items to cart</a>
<ul id="product">
<li id="item1">item 1</li>
<li id="item3">item 3</li>
<li id="item5">item 5</li>
</ul>
<h2>Shopping Cart</h2>
<a id="remove-all">Remove all items</a>
<ul id="cart">
<li id="item2">item 2<input type="hidden" name="cartItems" value="item2"></li>
<li id="item4">item 4<input type="hidden" name="cartItems" value="item4"></li>
</ul>
正如你在上面看到的,当一个项目被单独添加到购物车时,我.append一个input标签具有相同的id。
粗略的 jQuery 看起来像这样:
$('#product').on('click','li', function() {
var itemID = $(this).attr('id');
var itemLabel = $(this).html();
var newItemLabel = itemLabel + '<input type="hidden" name="cartItems" value="' + itemID + '">';
$(this).remove();
$('#cart').append('<li id="' + itemID + '">' + newItemLabel + '</li>');
});
这一次可以正常工作。但我一直在尝试遍历产品列表中的每个项目以添加所有(或全部删除)。
你能指出我正确的方向吗?
特别是因为我需要为每个列表项添加一个输入元素。所以我不能只取#product 的html() 并附加到#cart 而不遍历每个并附加一个输入。
Tl;dr
-
#add-all点击应该将#product中的所有项目移动到#cart, 将input附加到每个 -
#remove-all点击应该将#cart中的所有项目移动到#product, 删除所有input标签 - 怎么样?
【问题讨论】:
标签: javascript jquery loops each