2016-10-29 14 views
-1

jsのreplaceChildを使用してボタンをクリックしたときに、id = 'water'のスパンをアンカーで置き換える必要があります。 fff()はうまく動作しますので、問題と思われる最後の2行までff()を実行します。 (私はreplaceChildがどのように動作するか把握できません)。私はElement.replaceChildは別の要素によって要素の子を置き換えるために使用されるボタンhttp://prntscr.com/d0b95vreplaceChildを使用してspanタグをanchorタグに置き換えるjavacript

答えて

0

をクリックしたときに

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> 

は、私はこれを取得します。あなたはspan#waterを置き換えたいので、親(それは<body>です)を選択してreplaceChildを呼び出さなければなりません。あなたはffの最後の行をこれに変更するかもしれません

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

また、より一般的な解決策として、 's.parentNode.replaceChild(...)' – CBroe

関連する問題