我正在尝试从一个列表中获取项目列表并将其放入另一个列表中。
这就是我所拥有的:
$("#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
。
答案 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)
为你玩弄小提琴:
现在,clone()
是一种方式,复制.html()
是另一种方式,可能还有其他一些方式。查看jQuery API的不同之处:
答案 3 :(得分:0)
您可以使用data()
复制HTML并将其存储在数据中
var $old=$('#old');
$old.data('myhtml',$old.html());
要将副本插入#test
,您可以执行
var x = $old.data('myhtml');
$(x).appendTo('#test');