使用jquery计算动态创建的html元素

时间:2012-12-19 03:25:03

标签: javascript jquery onclick dynamically-generated

我正在计算当前文档中有价值的输入数量。它工作正常,除了我动态添加更多输入。我无法达到价值观。

例如我可能有

<input id="participant-1"/>
<input id="participant-2"/>
...

点击按钮后动态创建

<input id="participant-15" />

我将在for循环中获取每个值的值,如

for(var i =1 ; i <25; i++)
{
  ...$('input#participant-' + i).val();
}

现在,当我运行for循环来检查每个输入的值时,它只获取未动态创建的输入值。我已经在这里查看了其他问题,但我仍然无法看到如何将.on()这样的内容应用到我想要实现的目标上。

新的问题 好的,现在我认为这是我需要更多关于如何使用.on。

的说明

我在这里有一个jsfiddle:JsFiddle example

我创建新元素和所有文本框的模糊,我想计算有多少元素有价值并记录它。现在,它将使用静态元素对blur事件做出响应。它不适用于动态创建的元素

3 个答案:

答案 0 :(得分:8)

给它一个共同的课程:

<input class="textbox" id="participant-1"/>
<input class="textbox" id="participant-2"/>

并得到它:

var values = [];
$('.textbox').each(function(){
    values.push($(this).val());
});
console.log(values)

回答编辑:

语法应为: $(container_selector).on(event_type,target_selector,callback)

<强> JSFiddle Demo

$('.name').on('blur', 'input', calculate_total);

答案 1 :(得分:2)

还可以考虑使用CSS属性选择器。

http://www.w3.org/TR/CSS2/selector.html#attribute-selectors

    $("input[id|=participant]").each(function(){
            // something
    });

答案 2 :(得分:-2)

使用类选择器可以节省时间。

<input id="participant-1" class="participant"/>
<input id="participant-2" class="participant"/>

然后使用简单的计数调用......

var count = $('.participant').length
alert ('You have ' + count + ' Counted Inputs');
//result is 2

希望你找到这个有用的