Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆节点并附加到xml_Javascript_Xml - Fatal编程技术网

Javascript 克隆节点并附加到xml

Javascript 克隆节点并附加到xml,javascript,xml,Javascript,Xml,我需要一些javascript(不是JQuery等)代码来复制克隆节点并在下一步插入它 复制到复制的节点。例如 <a> <b> <ab></ab> <bc></bc> </b> </a> 现在,在从源xml复制节点并将其作为下一个同级添加之后 <a> <b> <ab>

我需要一些javascript(不是JQuery等)代码来复制克隆节点并在下一步插入它 复制到复制的节点。例如

<a>
    <b>
        <ab></ab>
        <bc></bc>
    </b>
</a>

现在,在从源xml复制
节点并将其作为下一个同级添加之后

    <a>
        <b>
            <ab></ab>
            <bc></bc>
        </b>
        <!-- this is the copied node that will be appended. -->
        <b>
            <ab></ab>
            <bc></bc>
        </b>
        <!-- copied node ends here. -->
    </a>

如果有人向我展示一些至少在Mozilla2和IE5+中得到支持的代码示例,我将不胜感激。
CloneNode方法在许多主要浏览器的原始版本中无法正常工作。但是,所有IE浏览器都支持CloneNode。因此,cloneNode方法将不是一个解决方案。

假设您通过ID获得所需的节点,下面介绍如何克隆现有节点并将克隆附加为同级节点:

var node = document.getElementById("toBeCloned");
var parentNode = node.parentNode;
alert(parentNode.outerHTML);
var clonedNode = node.cloneNode(true);
clonedNode.removeAttribute("id");
parentNode.appendChild(clonedNode);
alert(parentNode.outerHTML);
警报将显示插入前后XML的外观


这段代码适用于Mozilla和任何合理版本的IE。我不能保证IE5到IE7的支持,因为我没有访问这些浏览器的权限

谢谢你为我写代码,阿巴斯。但是我提到cloneNode方法在大多数旧浏览器的原始版本中都不能正常工作。我需要cloneNode方法以外的其他方法,因为我的程序是针对旧浏览器本身的。在这种情况下,您需要使用createElement。但是,这种方法的问题是,您必须自己创建给定节点中的所有子节点。这意味着递归地遍历节点,获取子节点的名称,调用createElement方法并将新节点附加到父节点。