插入 div 作为没有 'insertBefore' 没有 jQuery 的 .lastElementChild

Insert div as the .lastElementChild without 'insertBefore' without jQuery

好的,所以我通常将 .box-4 作为 .s1 中的最后一个元素,如下所示:

<div class="s1">
 <div class="box-1"></div>
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-4"></div>
</div>

并使用 JavaScript:

.box-4 之前移动 .box-1
var box1 = document.querySelector('.box-1');
var s1 = box1.parentNode;

s1.insertBefore(box1, s1.lastElementChild);

收到以下结果:

<div class="s1">
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-1"></div>
 <div class="box-4"></div>
</div>

但是,我最近从 .s1 中删除了 .box-4,因此 .box-1 不再 move/becomes the .lastElementChild. 我还是要 .box-1 移动,因此成为最后一个,但是,我不确定哪个命令可以实现这一点;希望是这样的

.insertAs(box1, s1.lastElementChild);

实现这个:

<div class="s1">
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-1"></div>
</div>

注意:.box-1 根据屏幕宽度改变位置,因此简单地将 div 移动到 HTML 不是一个选项。

注意:仅限香草 JavaScript - 无 jQquery。

在此先感谢大家,非常感谢!

要在没有 jQuery 的情况下插入 HTML,只需使用 insertAdjactedHTML 函数即可。 https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML

就用.appendChild?

const box1 = document.querySelector('.box-1');
const s1 = box1.parentElement;
box1.remove();
s1.appendChild(box1);
<div class="s1">
 <div class="box-1">b1</div>
 <div class="box-2">b2</div>
 <div class="box-3">b3</div>
 <div class="box-4">b4</div>
</div>

下面会将 box1 添加为最后一个子项(自动将其从原始位置移除)。

var box1 = document.querySelector('.box-1');
var s1 = box1.parentNode;

s1.appendChild(box1);