Javascript 在两个单独的节点列表之间交换DOM节点
Javascript 在两个单独的节点列表之间交换DOM节点,javascript,dom,Javascript,Dom,sampleItems和groupItems的成员数相同。如何在两个列表之间交换每个节点,并使它们保持相同的顺序,以便第二次交换它们,从而获得原始状态 var sampleItems = document.querySelectorAll('#form div.swap'); var groupItems = document.querySelectorAll('#groupby-inputs div'); console.log(sampleItems, groupItems) docume
sampleItems
和groupItems
的成员数相同。如何在两个列表之间交换每个节点,并使它们保持相同的顺序,以便第二次交换它们,从而获得原始状态
var sampleItems = document.querySelectorAll('#form div.swap');
var groupItems = document.querySelectorAll('#groupby-inputs div');
console.log(sampleItems, groupItems)
document.querySelectorAll('input[type=radio][name="timeGroup"]')
.forEach(timeGroup => timeGroup.addEventListener('change', () => {
for(var i = 0, l = sampleItems.length; i < l; ++i) {
//var sampleItem = sampleItems[i];
console.log(i, sampleItems[i], groupItems[i])
var groupItem = groupItems[i];
var groupItemParent = groupItem.parentNode;
var sampleItemsParent = sampleItems.parentNode;
groupItemParent.insertBefore(sampleItems[i], groupItem[i]);
sampleItemsParent.replaceChild(groupItem, sampleItems[i]);
console.log(sampleItems, groupItems, groupItem, groupItems[i], groupItemParent)
//groupItemParent.replaceChild(sampleItem);
}
console.log(sampleItems, groupItems, groupItem)
}
));
var-sampleItems=document.querySelectorAll(“#form div.swap”);
var groupItems=document.querySelectorAll(“#groupby inputs div”);
日志(sampleItems、groupItems)
document.querySelectorAll('input[type=radio][name=“timeGroup”]”)
.forEach(timeGroup=>timeGroup.addEventListener('change',()=>{
对于(变量i=0,l=sampleItems.length;i
可能是更好的解决方案,但最终使用了以下方法,并且效果良好
var groupInputs = document.querySelectorAll('#groupby-inputs div');
var groupArray = [];
for(var i = 0, l = groupInputs.length; i < l; ++i) {
groupArray.push(groupInputs[i]);
}
document.querySelectorAll('input[type=radio][name="timeGroup"]')
.forEach(timeGroup => timeGroup.addEventListener('change', () => {
var sampleItems = document.querySelectorAll('#form div.swap');
for(var i = 0, l = sampleItems.length; i < l; ++i) {
groupArray[i] = sampleItems[i].parentNode.replaceChild(groupArray[i], sampleItems[i]);
}
}
));
var groupInputs=document.querySelectorAll(“#groupby inputs div”);
var groupArray=[];
对于(变量i=0,l=groupInputs.length;itimeGroup.addEventListener('change',()=>{
var-sampleItems=document.querySelectorAll(“#form div.swap”);
对于(变量i=0,l=sampleItems.length;i