DOM 中的 JavaScript 移动元素
2022-08-30 05:37:11
假设我在一个页面上有三个元素。我如何交换第一个和第三个的头寸?jQuery很好。<div>
<div>
假设我在一个页面上有三个元素。我如何交换第一个和第三个的头寸?jQuery很好。<div>
<div>
没有必要使用库来完成这样一个微不足道的任务:
var divs = document.getElementsByTagName("div"); // order: first, second, third
divs[2].parentNode.insertBefore(divs[2], divs[0]); // order: third, first, second
divs[2].parentNode.insertBefore(divs[2], divs[1]); // order: third, second, first
这考虑了这样一个事实,即返回一个实时 NodeList,该列表会自动更新以反映 DOM 中元素在操作时的顺序。getElementsByTagName
您还可以使用:
var divs = document.getElementsByTagName("div"); // order: first, second, third
divs[0].parentNode.appendChild(divs[0]); // order: second, third, first
divs[1].parentNode.insertBefore(divs[0], divs[1]); // order: third, second, first
还有各种其他可能的排列,如果你想尝试的话:
divs[0].parentNode.appendChild(divs[0].parentNode.replaceChild(divs[2], divs[0]));
例如:-)
使用jQuery的琐碎
$('#div1').insertAfter('#div3');
$('#div3').insertBefore('#div2');
如果要重复执行此操作,则需要使用不同的选择器,因为 div 在移动时将保留其 ID。
$(function() {
setInterval( function() {
$('div:first').insertAfter($('div').eq(2));
$('div').eq(1).insertBefore('div:first');
}, 3000 );
});