我想编写一个Javascript函数,用另一个DOM元素替换一个DOM元素。此外,我需要在替换后将旧元素引用指向新元素。
我为此目的编写了以下函数:
var replaceDomElement = function (el1, el2) {
var parent = el1.parentNode;
if (!parent) return false;
parent.replaceChild(el2, el1);
el1 = el2;
return true;
}
但这不符合我的要求。 DOM元素已正确替换。
但声明el1 = el2
不起作用。
执行此函数后,el1仍然指向现在没有父元素的旧元素。
更改函数内DOM对象的引用的正确方法是什么?
答案 0 :(得分:0)
以下代码可以根据需要使用:
var replaceDomElement = function (el1, el2) {
var parent = el1.parentNode;
if (!parent) return false;
parent.replaceChild(el2, el1);
return el2;
}
var element1 = document.getElementById("el1");
var element2 = document.getElementById("el2");
element1 = replaceDomElement(element1, element2);
alert(element1 === element2);
即。在结尾,element1等于element2。不同的是你返回el2。这是一个显示示例http://codepen.io/krasimir/pen/LcyFe
的codepen