Javascript 如何在DOM中移动这些元素
我不想更改HTML,因为我想保持默认视图的显示方式,并希望在第二个视图中移动它们。我想知道如何对div类进行动态排序。Javascript 如何在DOM中移动这些元素,javascript,Javascript,我不想更改HTML,因为我想保持默认视图的显示方式,并希望在第二个视图中移动它们。我想知道如何对div类进行动态排序。 我想通过点击按钮来实现这一点。我有一个用于“点击”的事件监听器,我正在做一些事情,移动逻辑将进入这个事件监听器。 我知道我可以得到这些div,从他们的父母那里搬走,放在我想要的地方。但我不知道如何为每个人做这些,因为我有多个lis。我正在努力与循环,以便我可以做这些为每一个李。我需要使用纯JS而不是jQuery来实现这一点 <ul> <li> &
我想通过点击按钮来实现这一点。我有一个用于“点击”的事件监听器,我正在做一些事情,移动逻辑将进入这个事件监听器。 我知道我可以得到这些div,从他们的父母那里搬走,放在我想要的地方。但我不知道如何为每个人做这些,因为我有多个lis。我正在努力与循环,以便我可以做这些为每一个李。我需要使用纯JS而不是jQuery来实现这一点
<ul>
<li>
<div>
<div class="a">
<div class="b">
<a class="c">
<div class="d"></div>
<div class="e">
<div class="f"></div> // this is the first item that I want to move
</div>
<div class="g"></div> // this is the second item that I want to move
</a>
</div>
<div class= "h"></div> // I want above mentioned divs to be before this div
</div>
</div>
</li>
//There are multiples lis
<li></li>
假设您希望在加载页面时执行此操作,您可以通过以下JQuery DOM操作来解决问题:
$(document).ready(function(){
$("ul .a").each(function(index, element){
$current_div_a = $(element);
$div_h = $current_div_a.find(".h");
$div_f = $current_div_a.find(".f");
$div_f.clone().insertBefore($div_h);
$div_f.remove();
$div_g = $current_div_a.find(".g");
$div_g.clone().insertBefore($div_h);
$div_g.remove();
})
});
你可以在电脑上测试一下
不过,我强烈反对这种做法。我想这也是为什么你的问题也得到一些反对票的原因。只需修改HTML,就可以使您的代码保持干净、可维护和更清晰,便于其他开始处理您的项目的人使用。尽可能保持代码的向后兼容性将在以后导致可维护性问题。我最终使用了
var list = document.querySelectorAll("ul li");
for (var item of list) {
let fClass = item.querySelector(".f");
fClass.parentNode.removeChild(fClass);
let parentOfFirstChildAfterWhichIwantMyF = item.querySelector(//selector for parentOfFirstChildAfterWhichIwantMyF);
parentOfFirstChildAfterWhichIwantMyF.insertAdjacentElement("beforeend", fClass);
}
移动是什么意思?如果您通过脚本移动它们,您将获得与在html中直接移动它们相同的效果,那么为什么?因此,类为f和类为g的div显示在类为h的div之前。您能否进一步解释一下,您希望如何实现这一点?通过单击按钮,您希望结果显示在同一页上还是另一页上?这是一个奇怪的请求,我想通过点击按钮来实现。我有一个用于“点击”的事件监听器,我正在做一些事情,这个移动逻辑将进入这个事件监听器。