使用replaceChild javascript替换带有锚标记的span标记

时间:2016-10-29 02:38:25

标签: javascript

我需要用id =' water'来替换span。使用js中的replaceChild单击按钮时使用锚点。 fff()工作正常,ff()也是如此,直到我认为问题出现的最后两行。 (我无法弄清楚replaceChild的工作原理)。

function fff() {
        var ss = document.createElement('span');
        var text = document.createTextNode('https://www.google.com/');
        ss.appendChild(text);
        document.getElementById('water').appendChild(ss);
    }
    function ff() {
        var s = document.createElement('a');
        var t = document.createTextNode("https://www.google.com/");
        s.appendChild(t);
        s.href = "http://example.com";
        var item = document.getElementById('water');
        item.replaceChild(s, item);
    }

<body onload="fff()">
<span id="water"></span> <br><br>
<button onclick="ff()">Replace with anchor</button>
</body>

当我点击按钮http://prntscr.com/d0b95v

时,我就明白了

1 个答案:

答案 0 :(得分:0)

Element.replaceChild用于用另一个元素替换Element的子元素。由于您要替换span#water,您必须选择其父级(UNION ALL)并调用replaceChild。您可以将最后一行ff更改为此

<body>