克隆数据时指定目标?

时间:2014-06-03 11:06:25

标签: javascript code-generation cloning

我正在创建一个代码生成器,它将为您提供文本片段的代码。 有一个自定义面板,您可以在其中设置文本格式。 生成代码时,它会根据您在面板中输入的内容进行打印。 如果您想在同一行上使用多种格式,则需要两个或更多自定义面板,这可以通过“添加面板”按钮实现。

但问题在于:当我在面板中克隆时,无论我尝试什么,我都无法在数据中指定要克隆的目标。它始终在底部。

以下是我使用的代码片段:

<!--What gets cloned!-->
<div id="duplicate">
    <input type="radio"/>
</div>
<!--What triggers the cloning function!-->
<input type="button" value="Clone Radio Button" onclick="dup()"/>
<!--This is the id that I want to paste the data to!-->
<p id="paste"></p>
<!--This is just text to prove that it appears at the bottom!-->
<h1>The radio button will clone below me!</h1>
<script>
    //This will take the id of the div tag, look at its data, and copy that data to the
    //bottom of the page
    function dup() {
        var clone = document.getElementById("duplicate"),
        clone2 = clone.cloneNode(true);
        document.body.appendChild(clone2)
    }
</script>

正如您所看到的,所有这一切都是获取div标签的数据并将其克隆到其他地方,就像“添加面板”按钮一样。它只是不是100%工作。

如果你知道我的问题的答案,你能用正确的标签写出我的功能吗?那将是真棒。 正如您可能看到的那样,我希望将其粘贴到p标记处,其中id =“paste”。

我希望有人知道答案。这是一个简单的概念,将div标签的数据粘贴到所需的位置,但对我来说,这很重要。谢谢!

编辑:感谢很多人,我发现我在“功能上”克隆了,所以当我用文件附上孩子时我必须直接指示.GETELEMENTBYID:)

2 个答案:

答案 0 :(得分:1)

您可以指定您的div id。

,而不是将复制的文字附加到body标签
document.getElementById("paste").appendChild(clone2);

答案 1 :(得分:0)

您当前正在将克隆节点附加到文档正文;

document.body.appendChild(clone2)

如果要将其附加到ID为paste的元素,只需将该行更改为;

document.getElementById('paste').appendChild(clone2)