Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在两个单独的节点列表之间交换DOM节点_Javascript_Dom - Fatal编程技术网

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