javascript - 使用javascript更改多个图像的位置
问题描述
我找不到可以帮助我解决问题的答案。我可以使用以下代码更改名为 .c-articleimage (包括图像)的 div 的位置,以放置在 .c-article__lead 之后:
var articleimage = document.querySelector('.c-articleimage');
var newposition = document.querySelector('.c-article__lead');
newposition.insertAdjacentElement('afterend', articleimage);
但是,如果我有多个 .c-articleimage 和 .c-article__lead 怎么办?我在想我可以使用 querySelectorAll 吗?但我可能需要以某种方式循环它?
var articleimage = document.querySelectorAll('.c-articleimage');
var newposition = document.querySelectorAll('.c-article__lead');
newposition.insertAdjacentElement('afterend', articleimage);
我怎么能解决这个问题?
最好的,
解决方案
该功能insertAdjacentElement
适用于节点。但是,两者articleimage
都是newposition
节点列表。如果要在最后一个newposition
节点之后插入,则需要选中它:
function moveai(){
var articleimage = document.querySelectorAll('.c-articleimage');
var newposition = document.querySelectorAll('.c-article__lead');
var lastnew = newposition.item(newposition.length - 1);
articleimage.forEach(function(el){
lastnew.insertAdjacentElement('afterend', el);
lastnew = el;
});
}
.c-articleimage{
color: red;
}
<div class='c-articleimage'>One</div>
<div class='c-articleimage'>Two</div>
<div class='c-article__lead'>Three</div>
<div class='c-article__lead'>Four</div>
<button onclick='moveai()'>Move</button>
如果按下按钮,元素One
和Two
移动到下方Three
和Four
。
推荐阅读
- c# - 使用 Net Core HttpClient 调用 API
- django - 带括号的 Djongo 搜索错误字符串
- amazon-web-services - 如何在 Amazon EMR 上读取 kinesis 数据流?
- python - 查找具有频繁项集的对应行
- java - java.lang.NoClassDefFoundError: com/google/pubsub/v1/DetachSubscriptionRequest
- c# - 按使用 linq 完成项目的用户对结果进行分组
- c - System() 只返回第一行命令结果
- snakemake - 引用另一个 Snakemake 规则的输入函数
- c# - System.IO.IOException:该进程无法访问文件“somefile.txt”,因为它正被另一个进程使用
- html - 无法在 angular5 中查看第一个手风琴的内容