我是新來的使用JavaScript,並且遇到了一些我正在尋找代碼來複制DIV的牆。我發現下面的代碼:Duplicate Div - 刪除選項可防止額外的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>
這工作得很好。我添加了一個Remove 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>
但是,這是行不通的。我完全承認自己不是編碼大師,如果它只是一個簡單的語法問題,不會感到驚訝,但任何與此相關的觀點都會被很好的接受。
太棒了,謝謝 – BDUB 2013-05-07 03:42:33