2016-10-29 3 views
-1

Мне нужно заменить span id = 'water' на якорь при нажатии кнопки с помощью replaceChild в js. fff() работает отлично, так что ff() до последних двух строк, где я думаю, проблема. (Я не могу понять, как работает replaceChild).Замена метки span тегом привязки с использованием replaceChild javascript

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

ответ

0

Element.replaceChild используется для замены ребенка элемент другого элемента. Поскольку вы хотите заменить воду # span #, вам нужно выбрать ее родителя (который равен <body>) и вызвать replaceChild. Вы можете изменить свою последнюю строку ff на это

var body = document.body; 
body.replaceChild(s, item); 
+1

Или, для более общего решения: 's.parentNode.replaceChild (...)' – CBroe

Смежные вопросы