使用jQuery将列表项从一个列表复制到另一个列表

时间:2011-04-14 00:23:44

标签: jquery list html-lists

我正在尝试从一个列表中获取项目列表并将其放入另一个列表中。

这就是我所拥有的:

$("#change").click(function () {
    arr = $('#old').map(function () {
        return $(this).text();
    }).get();

    $.each(arr, function (index, item) {
        $('#test').append($( "<ul><li>" + item + " at " + index +"</li>" ));
    });
});

HTML:      

<ul id="old">
    <li>One</li><li>Two</li><li>Three</li>
</ul>
<ul id="new"></ul>

old中的项目放入new。它似乎在将所有项目放入<li>时将其放入一个new

4 个答案:

答案 0 :(得分:4)

首先是clone()appendTo()新列表:

$('#old > li').clone().appendTo('#new');

然后更改他们的text()

$('#new > li').text(function (index, text) {
    return text + ' at ' + index;
});

工作演示:http://jsfiddle.net/vkYUQ/


或者,将上述内容合并为一个语句:

$('#old > li').clone().text(function (index, text) {
    return text + ' at ' + index;
}).appendTo('#new');

答案 1 :(得分:3)

$(document).ready(function() {
    $("#change").click(function() {
        var old = $("#old");
        var items = $("#old li");
        var newList = $("#new");
        items.each(function(index, value){
            newList.append(value);
        });
        old.empty();
        return false;
    });
});

答案 2 :(得分:0)

为你玩弄小提琴:

http://jsfiddle.net/yEgMK/1/

现在,clone()是一种方式,复制.html()是另一种方式,可能还有其他一些方式。查看jQuery API的不同之处:

http://api.jquery.com/clone/ http://api.jquery.com/html/

答案 3 :(得分:0)

您可以使用data()复制HTML并将其存储在数据中

var $old=$('#old');
$old.data('myhtml',$old.html());

要将副本插入#test,您可以执行

var x = $old.data('myhtml');
$(x).appendTo('#test');