使用jquery动态更改属性

时间:2015-08-03 07:02:24

标签: javascript jquery html

我正在运行一个附加输入字段的循环。现在,当我使用循环时,所有属性都是类似的。所以,当我需要抓住任何一个时,我抓住了多个场。

如何根据索引动态更改属性,以便我可以获取正确的输入字段?

 ebs_no = data.number_ebs;

 for(i=0;i<ebs_no;i++){
   $('form.ebs').append("<br>EBS"+(i+1)+"</br>");
   $('form.ebs').append('<br> SNAPSHOTNO <input type="text" name="'+i+'"></br>');
   $('form.ebs').append('<input type="submit" name="submit">');

   $('[name='+i+']').on('submit',function(){
     alert($('[name='+i+']').val());
   });
  }

2 个答案:

答案 0 :(得分:0)

您正在寻找事件委派。它用于创建动态DOM元素,并在循环中使用class而不是iterare i

ebs_no = data.number_ebs;
for (i = 0; i < ebs_no; i++) {
    $('form.ebs').append("<br>EBS" + (i + 1) + "</br>");
    $('form.ebs').append('<br> SNAPSHOTNO <input type="text" class="someClass" name="' + i + '"></br>');
    $('form.ebs').append('<input type="submit" name="submit">');
    $('[name=' + i + ']').on('submit', function () {
        alert($('[name=' + i + ']').val());
    });
}
$(document).on('submit', '.someClass', function () {
    alert($(this).val());
});

答案 1 :(得分:0)

替换它:

alert($('[name='+i+']').val());

由此:

alert($(this).val());

代码$(this)指的是正在处理的元素