在不使用jquery的情况下对javascript中的div重新排序

在不使用jquery的情况下对javascript中的div重新排序,javascript,html,dom,Javascript,Html,Dom,假设我有html: <div id="1">1</div> <div id="2">2</div> <div id="3">3</div> 1 2. 3. 在javascript而不是jquery中,如何将这些div重新排序为: <div id="1">1</div> <div id="3">3</div> <div id="2">2</div>

假设我有html:

<div id="1">1</div>
<div id="2">2</div>
<div id="3">3</div>
1
2.
3.
在javascript而不是jquery中,如何将这些div重新排序为:

<div id="1">1</div>
<div id="3">3</div>
<div id="2">2</div>
1
3.
2.

您可以使用
display:flex
order
css(我不得不在id的数字前添加一个字母,因为我似乎不喜欢css)

.container{display:flex;flex direction:column}
#s1{顺序:1;}
#s2{顺序:3;}
#s3{顺序:2;}

1.
2.
3.

您可以使用
display:flex
order
css(我不得不在id的数字前添加一个字母,因为我似乎不喜欢css)

.container{display:flex;flex direction:column}
#s1{顺序:1;}
#s2{顺序:3;}
#s3{顺序:2;}

1.
2.
3.

重复问题给出的解决方案是不正确的,因为它们假设元素彼此相邻。但即使在这个简单的示例中,元素之间也有一个包含空格的文本节点

如果这两个元素没有嵌套,则可以使用此选项交换两个元素:

function swapElements (first, second) {
    var tmpNode = document.createElement('div');
    tmpNode.setAttribute('id', '_tmp');

    var firstParent = first.parentNode;
    firstParent.insertBefore(tmpNode, first);
    second.parentNode.insertBefore(second, first);
    firstParent.insertBefore(second, tmpNode);
    firstParent.removeChild(tmpNode);
}
像这样使用它:

var first = document.querySelector('#1');
var second = document.querySelector('#2');
swapElements(first, second);

重复问题给出的解决方案是不正确的,因为它们假设元素彼此相邻。但即使在这个简单的示例中,元素之间也有一个包含空格的文本节点

如果这两个元素没有嵌套,则可以使用此选项交换两个元素:

function swapElements (first, second) {
    var tmpNode = document.createElement('div');
    tmpNode.setAttribute('id', '_tmp');

    var firstParent = first.parentNode;
    firstParent.insertBefore(tmpNode, first);
    second.parentNode.insertBefore(second, first);
    firstParent.insertBefore(second, tmpNode);
    firstParent.removeChild(tmpNode);
}
像这样使用它:

var first = document.querySelector('#1');
var second = document.querySelector('#2');
swapElements(first, second);

什么订单。。。任意随机或特定。我想将第3部分移动到第1部分和第2部分之间。什么顺序。。。任意随机或特定。我想将div 3移动到div 1和div 2之间。tmpNode在这个过程中有什么用途?删除函数中的那个部分可以吗?tmpNode在这个过程中有什么用途?删除函数中的该部分可以吗?