这看起来很简单。我不确定如何确保它的混乱。
我有一份清单。我想把前三个项目放在前面,然后将它们添加到后面。我不想从前面删除项目。我希望他们在前面和后面。
所以我的列表就像这样开始
[1,2,3,4,5,6,7,8,9,10]
在我完成之后会看起来像这样
[1,2,3,4,5,6,7,8,9,10,1,2,3]
此列表存储在<ul>
这是我的代码
_options.slides = $.makeArray($('.slide'));
var el = [];
$.each(_options.slides.splice(0, 3), function (x, item) {
el.push(item);
});
$('#video-triggers').clone().append(el); //break point here
有些代码可能是不必要的,因为我已经玩了太久了。如果我在克隆追加行上设置断点并在控制台中执行代码(开发工具),那么结果就是
修改
克隆和追加行有我的结果,但容器没有这些结果吗?
以下是没有克隆的结果
编辑2
我也试过这个
$('#video-triggers').append(_options.slides.concat(el))
答案 0 :(得分:2)
您的操作顺序和变量混淆了。 。 。您正在克隆目标<ul>
,而不是要复制的<li>
。试试这个 。 。
改变这个:
$('#video-triggers').clone().append(el);
。 。 。对此:
el.clone().appendTo($('#video-triggers'));
答案 1 :(得分:1)
那是因为您克隆它然后您将新元素添加到克隆中(并且您的页面上不存在克隆)。
答案 2 :(得分:1)
使用unshift();将项目推送到数组前面。
$.each(_options.slides.splice(0, 3), function (x, item) {
el.push(item);
el.unshift(item);
});
答案 3 :(得分:0)
a = [1,2,3,4,5,6,7,8,9,10];
b = a.concat(a.slice(0,3));
console.log(b);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3]