我是使用 javascript 的新手,在寻找复制 DIV 的代码时遇到了一些困难。我找到了以下代码:
<html>
<body>
<form name="myform">
<input type="button" value="Click here" onclick="duplicate()">
<div id="original">
duplicate EVERYTHING INSIDE THIS DIV
</div>
<div id="duplicater">
duplicate EVERYTHING INSIDE THIS DIV
<input type="button" value="Remove Div" onclick="this.parentNode.style.display = 'none'">
</div>
<script>
var i = 0;
var original = document.getElementById('duplicater');
function duplicate() {
var clone = original.cloneNode(true); // "deep" clone
clone.id = "duplicater" + ++i;
// or clone.id = ""; if the divs don't need an ID
original.parentNode.appendChild(clone);
}
</script>
</body>
</html>
这工作得很好。我添加了一个删除 Div 按钮,因此如果用户决定他们添加了太多的 Div,他们可以选择删除它。但是,在测试中,我发现如果用户删除 Div 一直回到第一个 Div,则不会显示任何进一步的 Duplicate Div。所以用户将不得不重新启动页面。为了解决这个问题,我尝试包含一个 IF...ELSE。
<html>
<body>
<form name="myform">
<input type="button" value="Click here" onclick="duplicate()">
<div id="original">
duplicate EVERYTHING INSIDE THIS DIV
</div>
<div id="duplicater">
duplicate EVERYTHING INSIDE THIS DIV
<input type="button" value="Remove Div" onclick="this.parentNode.style.display = 'none'">
</div>
<script>
var i = 0;
var original = document.getElementById('duplicater');
function duplicate() {
if (document.getElementById("duplicater")=="none")
{
document.getElementById("duplicater")="";
}
else
{
var clone = original.cloneNode(true); // "deep" clone
clone.id = "duplicater" + ++i;
// or clone.id = ""; if the divs don't need an ID
original.parentNode.appendChild(clone);
}
}
</script>
</body>
</html>
但是,这不起作用。我完全承认自己不是编码大师,如果这是一个简单的语法问题,我不会感到惊讶,但任何与此相关的观点都会被广泛接受。