首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入div作为.lastElementChild,没有“insertBefore”而没有jQuery

插入div作为.lastElementChild,没有“insertBefore”而没有jQuery
EN

Stack Overflow用户
提问于 2018-03-21 06:12:57
回答 3查看 352关注 0票数 1

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

代码语言:javascript
复制
<div class="s1">
 <div class="box-1"></div>
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-4"></div>
</div>

并让..box 1..box 4之前使用JavaScript:

代码语言:javascript
复制
var box1 = document.querySelector('.box-1');
var s1 = box1.parentNode;

s1.insertBefore(box1, s1.lastElementChild);

若要获得以下结果:

代码语言:javascript
复制
<div class="s1">
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-1"></div>
 <div class="box-4"></div>
</div>

但是,我最近从.lastElementChild. .s1中删除了..box 4,因此..box 1不再移动/成为

代码语言:javascript
复制
.insertAs(box1, s1.lastElementChild);

为实现这一目标:

代码语言:javascript
复制
<div class="s1">
 <div class="box-2"></div>
 <div class="box-3"></div>
 <div class="box-1"></div>
</div>

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

注:Vanilla JavaScript only - No jQquery。

谢谢各位,非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-21 06:22:52

下面将添加box1作为最后一个子元素(自动从它原来的位置删除它)。

代码语言:javascript
复制
var box1 = document.querySelector('.box-1');
var s1 = box1.parentNode;

s1.appendChild(box1);
票数 1
EN

Stack Overflow用户

发布于 2018-03-21 06:16:49

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

票数 0
EN

Stack Overflow用户

发布于 2018-03-21 06:19:49

只需使用.appendChild

代码语言:javascript
复制
const box1 = document.querySelector('.box-1');
const s1 = box1.parentElement;
box1.remove();
s1.appendChild(box1);
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49399411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档