【发布时间】:2018-01-20 22:01:16
【问题描述】:
我已经创建了一个表单,它会自我复制,但是我无法让“x”按钮根据需要删除它所代表的 div。
我将两个按钮都放在了 div 之外,如下所示:
<button type="button" id="cross" class="buttonImgTop" onclick="remChild()"></button>
<div id="ValuWrapper"> ...content comes here... </div>
<button type="button" class="buttonImg" onclick="repeat()"></button>
每次单击“+”号以在网站上添加更多表单时,都会克隆和复制“x”按钮和“div”。
这里是克隆和删除表单的代码:
<script>
var i = 0;
var original = document.getElementById('ValuWrapper');
var crossButton = document.getElementById('cross');
var n = 0;
function repeat() {
var clone = original.cloneNode(true);
var crossBut = crossButton.cloneNode(true);
clone.id = "ValuWrapper" + ++i;
crossBut.id = "cross" + i;
crossButton.parentNode.appendChild(crossBut);
original.parentNode.appendChild(clone);
// used for remChild() function
n = i;
}
function remChild(){
for(i = 0; i <= n; i +=1)
{
$("#cross"+[i]).click(function () {
$("#ValuWrapper"+[i]).slideUp(400, function () {
$("#ValuWrapper"+[i]).remove();
$(this).remove();
});
});
}
}
</script>
我想要做的是当单击“x”按钮时,动画“slideUp()”在指定的 div 上工作,然后删除按钮和 div,这应该以客户希望的任何顺序发生。但是,它似乎不起作用。
【问题讨论】:
-
1.您需要搜索闭环。 2.不要使用id。使用closest method 3. 不要混用DOM和jQuery
-
请提供您的html
-
@mplungjan 为什么我们不能使用'break'来代替?循环闭包在 JavaScript 中看起来非常令人困惑,因为我无法理解在函数中包含一个函数然后调用该函数。但是,一旦操作完成一次,这会停止循环吗?
-
@amitwadhwani 我在帖子中添加的代码只是被克隆/删除的代码。没有使用其他代码。请说明为什么需要整个 HTML。
标签: javascript jquery html css