我在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不是一个事件。
答案 0 :(得分:2)
您正在设置名称属性而不是ID。
应该是:
$('input[name^="monto_"]')