jq怎么实现dom对象互换位置

比如 我使用 var list_li = $("li.list"); 获取li的dom对象列表

现在我想实现 比如 索引0 和索引 3 的dom对象互换位置。怎么才能实现呢

一般交换 :

var temp = list_li[0];
list_li[0] = list_li[3];

list_li[3] = temp;

由于对象是引用关系。所以用一般的数据交换原理,不能实现

阅读 4.7k
1 个回答

额 DOM是一棵树,你要互换两个节点应该让它们的父节点知道的。

function swapDom(dom1, dom2) {
  let tempDiv = document.createElement('div')
  dom1.parentNode.insertBefore(tempDiv, dom1)
  dom2.parentNode.insertBefore(dom1, dom2)
  tempDiv.parentNode.insertBefore(dom2, tempDiv)
  tempDiv.parentNode.removeChild(tempDiv)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题