javascript - 如何计算动态创建的div

标签 javascript jquery html

我正在尝试编写一个表单生成器,用户可以在其中生成注册表单。我需要限制用户可以创建的项目数量,但是他们也需要删除这些项目。

原来我有

var limit = 5;
var counter = 0;

if (counter == limit)  {

然而,当用户删除项目时,计数器保持不变,因此他们无法用新项目替换已删除的表单元素。所以我想做的是计算当前有多少项目处于事件状态。我试图通过给每个新元素一个类(.kid)然后计算该类的 div 数量来做到这一点,但它没有用。

谁能指出我正确的方向?这是我到目前为止所拥有的,但它不起作用。

var limit = 6;
var num = $('.kid').length;

   function addAllInputs(divName, inputType){

    if (num == limit)  {
        alert("You have all ready added 6 form items");
    }
    else { 
    var newdiv = document.createElement('div');
        newdiv.setAttribute('id', 'child' + (counter + 1));
        newdiv.setAttribute('class', 'kid' );

大家加油!

最佳答案

您需要在闭包中捕获当前计数器。当用户删除项目时减少计数器,并在创建项目后增加计数器。您的代码示例没有透露您如何处理删除,但我会尝试用一个小代码片段来说明我的意思:

$(document).ready(function () {
    var limit = 5;
    var counter = $('.kid').length;

    $('#triggers_delete').click(function () {
        /* delete the item */
        counter--;
    });

    $('#triggers_creation').click(function () {
        if (counter == limit) {
            alert('Limit reached');
            return false;
        }
        /* somehow determine divName and inputType
           and create the element */    
        addAllInputs(divName, inputType);
        counter++;
    });
});

function addAllInputs(divName, inputType) {
    /* just create the item here */
}

关于javascript - 如何计算动态创建的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796837/

相关文章:

Javascript一次选择一行

c# - 使用Jquery无法获得正确的输出

javascript - jQuery .on 和 .trigger

html - Firefox 无法识别复选框的背景图像

javascript - window.location 下载具有大请求数据的文件

javascript - 从函数中使用数据加载器时,Amchart 未显示

javascript - jQuery click() 事件;如何防止鼠标右键单击时发生此事件?

javascript - 为什么 Immutable.js 在 Map.setIn() 上抛出无效的键路径

javascript - rails/JQuery : Auto complete without loading entire database into browser

javascript - 查找并替换 Json 文件中的项目