Jquery classname.each函数不适用于动态添加的函数
下面的示例用于在动态添加的文本框中添加数字。Jquery classname.each函数不适用于动态添加的函数,jquery,Jquery,下面的示例用于在动态添加的文本框中添加数字。 第一个输入指示应显示文本框的编号。如果为5,则将显示5文本框 HTML 但当我使用类名时,它显示了错误的答案 $(document).on('click', ".btn1", function(){ var sum=0; var d; $(".test").each(function () { d=$(this).val(); sum=sum+parseInt(d); });
第一个输入指示应显示文本框的编号。如果为5,则将显示5文本框 HTML 但当我使用类名时,它显示了错误的答案
$(document).on('click', ".btn1", function(){
var sum=0;
var d;
$(".test").each(function () {
d=$(this).val();
sum=sum+parseInt(d);
});
alert(sum);
});
为什么classname.each函数不适用于动态添加的元素集。但是如果我添加任何文本框(不是动态添加),classname.each函数在这种情况下工作。动态添加类有什么方法吗?您没有在
class=test
后面加空格,因此该类是test/
。最佳做法是引用您的属性
$(文档)。在('click',“#btn”,function()上{
$('#maindiv')。空;
变量计数=$('#cd').val();
var i=0;
而(我<计数){
$('#maindiv')。附加('');
i++;
}
$('#maindiv')。附加('');
});
$(文档).on('click',“.btn1”,函数(){
var总和=0;
变量d;
$(“.test”)。每个(函数(){
d=$(this.val();
sum=sum+parseInt(d);
});
警报(总和);
});代码>
输入计数
具有相同ID的两个元素cd
?|函数名应该是empty()
相同的ID cd对答案没有任何影响。测试包括按钮右侧的输入字段,您记得填写吗?您可能应该检查parseInt
是否返回NaN
。否则,仅当所有字段都已填写时,它才起作用。
$(document).on('click', "#btn", function(){
$('#maindiv').empty;
var count=$('#cd').val();
var i=0;
while(i<count) {
$('#maindiv').append("<div><input name=DynamicTextBox type=text class=test/></div>");
}
$('#maindiv').append("<input type=button value=add class=btn1 />");
});
$(document).on('click', ".btn1", function(){
var sum=0;
var d;
$("input[name=DynamicTextBox]").each(function () {
d=$(this).val();
sum=sum+parseInt(d);
});
alert(sum);
});
$(document).on('click', ".btn1", function(){
var sum=0;
var d;
$(".test").each(function () {
d=$(this).val();
sum=sum+parseInt(d);
});
alert(sum);
});