当前位置:  开发笔记 > 编程语言 > 正文

在dom中重新排序html元素

如何解决《在dom中重新排序html元素》经验,为你挑选了2个好方法。

我有一个元素列表:

我有一个或多个代表新订单的数字:

var arr = [2,1,0];

我想将这些abc div重新定位到父包装器中的新位置.

重要的是abc divs附加了事件和数据,这需要保留!

我想出了这个,似乎按预期工作:

var wrapper = $('.wrapper'), items = wrapper.children('div.abc');

var orderedItems = $.map(arr, function(value) {
    return $(items).clone(true,true).get(value);
});
wrapper.empty().html(orderedItems);

我想确保这是正确的方法.

如果可能的话,我也可以使用javascript解决方案.



1> Thomas..:

无需复制所有项目..两次

var wrapper = $('.wrapper'), 
    items = wrapper.children('.abc'),
    arr = [2,1,0];

//items.detach(); if arr doesn't reuse all items
wrapper.append( $.map(arr, function(v){ return items[v] }) );



2> j2e..:

如果您想要一个纯Javascript解决方案(不涉及jQuery)

var arr = [2,1,0];
var wrapper = document.getElementsByClassName("wrapper");
var items = wrapper[0].children;
var elements = document.createDocumentFragment();

arr.forEach(function(idx) {
    elements.appendChild(items[idx].cloneNode(true));
});

wrapper[0].innerHTML = null;
wrapper[0].appendChild(elements);

我以前的回答有些改进。小提琴:https : //jsfiddle.net/jltorresm/1ukhzbg2/2/


请,请使用“文档碎片”随身携带一批物品
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有