JavaScript闭包,只是没有得到它

JavaScript闭包,只是没有得到它,javascript,closures,Javascript,Closures,我试图以迭代方式添加输入,并且能够对每个输入独立运行计算,但似乎无法应用闭包原则。计算功能仅处理最后添加的项目。我曾尝试在主函数(addIt())内部和周围使用for循环,但它似乎只会让事情变得更糟。。。 以下是基本的html: <button class="btn btn-default btn-block" onClick="addIt('Item'+count)">Add One</button> <form> <div id="ite

我试图以迭代方式添加输入,并且能够对每个输入独立运行计算,但似乎无法应用闭包原则。计算功能仅处理最后添加的项目。我曾尝试在主函数(addIt())内部和周围使用for循环,但它似乎只会让事情变得更糟。。。 以下是基本的html:

<button class="btn btn-default btn-block" onClick="addIt('Item'+count)">Add One</button>

<form>
     <div id="itemForm"></div> 
<form>
我试图设置一个,但由于某种原因,removeIt函数在那里不起作用,尽管它在本地为我工作,但只删除最旧的迭代。任何关于我如何失败的想法都会受到欢迎和赞赏

    var countString = count.toString();   
    num.oninput = function() {
    var numInput = document.getElementById('numInput' + countString).value;
    var divisor = 10;
    var result = document.getElementById('result' + countString);
    var myResult = (Number(numInput) / Number(divisor));
    result.value = myResult;   };

这是count的范围界定问题。它基本上是一个全局变量,因此闭包将查找它。使用在每次按下按钮时重新声明的局部变量来修复它。

就是这样!解决了我的计算和删除问题-谢谢!只是想在removeIt()解决方案中添加一个简短说明。初始的setAttribute行需要是:remove.setAttribute(“onClick”,“removeIt(this)”);然后函数非常简单:函数removeIt(el){el.parentNode.remove();}
    var countString = count.toString();   
    num.oninput = function() {
    var numInput = document.getElementById('numInput' + countString).value;
    var divisor = 10;
    var result = document.getElementById('result' + countString);
    var myResult = (Number(numInput) / Number(divisor));
    result.value = myResult;   };