javascript - 删除和追加节点

标签 javascript html dom

我想删除下面的span来自 div 的元素( <div id='foo'> ) 并附加新创建的节点而不是每个节点。

我正在使用循环遍历 div 的所有子项,对于找到的每个节点,我将使用 removeChild 删除它并附加一个新创建的节点。

我得到了o/p作为

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

我想要如下的o/p

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

问题代码如下

<!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>

提前致谢

最佳答案

您每次都重新附加相同的节点,这只是移动它(不会复制它)

更改此:

element.appendChild(seg);

到此

element.appendChild(seg.cloneNode(true));

关于javascript - 删除和追加节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171360/

相关文章:

javascript - knockout js中的日期格式

javascript - AngularJS - 使用 Mysql 进行过滤

java - 将 Java DOM 文档序列化为 XML : Add CData Elements

javascript - jQuery 在间隔函数内对 DOM 的更改不会保留

javascript - 在 Angularjs 中,每次单击“加载更多”按钮都会从 API 获取 10 个数据

javascript - 如何安装 babel-polyfill 库?

javascript - 获取APK包名

javascript - 如何在每个 html 页面上单独执行 jQuery/Ajax 加载

javascript - 可以有条件地加载 Firebug Lite 吗?

javascript - createElement 显示为文本节点