2012-04-27 101 views
2

我在jQuery中使用了自动完成插件,我创建了一个方法来显示在自动完成结果中选择的元素。每个附加元素上的jQuery

$("#buscar").autocomplete({ 
source: "procesos/buscarPersona.php", 
minLength: 2, 
select: function(event, ui){ 
    var name = ui.item.value; 
    var id = ui.item.id_persona; 
    $("#acreditados tbody").append('<tr id='+id+'><td>'+name+'<td><td>Monto: $<input name="monto_'+id+'" type="text" /><img id="delete_'+id+'" src="img/ico-delete.gif" /></td></tr>'); 
} 
}); 

正如你可以看到我的代码将输入元素附加到我的页面。然后在其他方法中,我想用先前添加的输入中的值进行操作。

$("#tablaAm").click(function(){ 
    var montoTotal = 0; 
    $("input[name^='monto_']").each(function(index){ 
     alert(index + ': ' + $(this).val()); 
    }); 
    }); 

问题是.each()不适用于这个新的元素。我尝试.each()输入页面加载时存在,我没有问题,问题是元素后加载。

我该如何做这项工作?我尝试过live()方法,但我认为.each不是一个事件。

回答

2

您正在设置name属性而不是id。

它应该是:

$('input[name^="monto_"]') 
+0

这不是问题,我忘了更改提交我的问题时,但实际上却是“name”属性,我试图 – 2012-04-27 22:32:07

+0

啊,OK,然后编辑你的问题; )我不知道它是否重要,但是你是否试图从**“**变成**”**,就像它在我的回答中那样? – 2012-04-27 22:34:18

+0

我的不好,你是对的,这是正确的答案!谢谢 – 2012-04-27 22:36:10