替换对DOM对象的引用

时间:2013-08-26 06:51:05

标签: javascript dom reference

我想编写一个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对象的引用的正确方法是什么?

1 个答案:

答案 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