如何使用jQuery将这些列表元素复制到另一个列表?

时间:2012-02-14 01:32:35

标签: jquery

我们说我有这些列表元素(多个):

<li id="menu-item-51604"><span class="dish-name">葡萄柚清心優多</span><span class="dish-price">25/35/50</span><span class="dish-description"></span><span class="dish-notes"></span></li>

<li id="menu-item-3144"><span class="dish-name">清心優多</span><span class="dish-price">25</span><span class="dish-description"></span><span class="dish-notes"></span></li>

<li id="menu-item-2154"><span class="dish-name">柚清心優多</span><span class="dish-price">35/50</span><span class="dish-description"></span><span class="dish-notes"></span></li>

我希望能够将单击的列表元素复制到名为ul.check-items的列表中。

有任何建议可以实现这一目标吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

$('#menu-item-51604').click(function(){
    $(this).clone().removeAttr("id").appendTo('ul.check-items');
});

根据您编辑的帖子:

$('#firstlist li').click(function(){
    $(this).clone().removeAttr("id").appendTo('ul.check-items');
});

其中firstlist是要从中克隆的列表的ID。

答案 1 :(得分:0)

这样的事情会特别针对该项目点击处理程序:

$("#menu-item-51604").click(function() {
   $("ul.check-items").append( $(this).clone() );
});

但是大概你想要“menu-item_51604”所属列表中的每个元素都有类似的行为,所以试试这样:

$("#yourULidHere li").click(function() {
   $("ul.check-items").append( $(this).clone() );
});

请注意,这会导致多个元素具有相同的ID,因此您应该更改或删除副本中的ID:

$("ul.check-items").append( $(this).clone().removeAttr("id") );
// OR
$("ul.check-items").append(
     $(this).clone().attr("id", function(i,oldVal) { return oldVal + "copy"; })
);

(如果你一直点击相同的元素,最后一行也将创建具有相同“... copy”id的多个元素,但它会显示一种修改id的方法......)