2009-07-23 31 views
0

span以下の要素をdiv<div id='foo'>)から削除し、それぞれの代わりに新しく作成したノードを追加したいと考えています。ノードを削除して追加する

私はループを使用してdivのすべての子をトラバースしており、見つかった各ノードについてはremoveChildで削除し、新しく作成したノードを追加します。事前に

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
</HEAD> 

<BODY> 
<div id='foo'> 
    <SPAN>welcome to the world of translation.</SPAN> 
    <SPAN>Thank you for using it</SPAN> 
    <SPAN>visit again</SPAN> 
</div> 
<table border="0" cellspacing="5" cellpadding="0" class="lipi-header-logo-menu"> 
     <tr> 
      <td align="left"> 
       <SPAN>Hello</SPAN> 
      </td> 
      <td align="left"> 
       World is not enough 
      </td> 
     </tr> 
</table> 
<div><a href="aa" id="id">this is a test</a></div> 

<script> 
var element = document.getElementById('foo'); 

seg = document.createElement('SPAN'); 
root_1_SPAN_1_text = document.createTextNode('new text'); 
seg.appendChild(root_1_SPAN_1_text); 

if (element.hasChildNodes()) 
{ 
    var children = element.childNodes; 
    for (var i = 0; i < children.length; i++) 
    { 
    if(children[i].nodeName=="#text") 
    { 
     continue; 
    } 
    element.removeChild(children[i]); 
    element.appendChild(seg); 
    }; 
}; 


    </script> 
</BODY> 
</HTML> 

おかげで、次のような問題のために

<div id='foo'> 
    <SPAN>new text</SPAN> 
    <SPAN>new text</SPAN> 
    <SPAN>new text</SPAN> 
</div> 

コードを次のように

<div id='foo'> 
    <SPAN>new text</SPAN> 
</div> 

は、私はO/Pを望むように私は、p/oを取得しています

です

答えて

2

あなたは

element.appendChild(seg); 

この

element.appendChild(seg.cloneNode(true)); 
へ:再追加同じノードにそれを移動するたびに、この

変更を(それはそれをコピーしません)

関連する問題