我有两个列表(#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>');
});
这一次工作得很好。但是我一直试图遍历产品列表中的每个项目以添加全部(或全部删除)。
你能为我指出正确的方向吗?
特别是因为我需要为每个列表项添加一个输入元素。所以我不能只使用html()
of#product
和 append to#cart
而不遍历每一个并附加一个输入。
Tl;博士
#add-all
click 应该将所有项目移入#product
到#cart
,附加input
到每个#remove-all
点击应该将所有项目移入#cart
,#product
删除所有input
标签- 如何?