2010-05-19 18 views
5

tengo una lista de botones generados dinámicamente y el ID se genera en tiempo de ejecución. ¿Cómo se puede obtener la identificación del botón presionado usando JQuery?Obtener identificación del elemento en el botón clic usando jquery

Aquí es el código JS

var btn = " <input type='button' id='btnDel' value='Delete' />"; 


$("#metainfo").append(txt); //set value of 

$("#btnDel").attr("id", "btnDel" + $("#hid").attr("value")); 
+0

añadir una clase como 'generatedButton' o lo que quieras con estos botones creados dinámicamente, y luego puedes usar la respuesta de Jan Willem B: http://stackoverflow.com/questions/2864327/get-id-of-element-on-button-click-using -jquery/2864340 # 2864340 – jigfox

+0

¿Por qué cambias la identificación del botón en primer lugar? Encuentro algo extraño de hacer ... – RoToRa

Respuesta

23

Para su ejemplo sería la siguiente:

$("#btnDel").click(function() { 
    alert(this.id); 
}); 

Tenga en cuenta que no puedes repetir el código que tienes, ID tiene que ser único, obtendrá todo tipo de efectos secundarios si no lo son, ya que es HTML no válido. Si quieres un controlador de clic para cualquier entrada, cambiar el selector, así:

$("input").click(function() { 
    alert(this.id); 
}); 
+0

Todos los botones dinámicos tienen identificadores únicos y su código no funciona. – Xulfee

+0

@ Xulfee - ¿Lo está ejecutando ** antes ** de crear el botón, o después de crearlo y establecer la ID? Si es anterior, deberás usar '.live ('click', function() {})' en lugar de '.click (function() {})' –

1
$('.generatedButton').click(function() { 
    alert(this.id); 
}); 

Edición después de que envió el código:

var btn = 
    $("<input type='button' value='Delete' />") 
    .attr("id", "btnDel" + $("#hid").val()) 
    .click(function() { 
     alert(this.id); 
    }); 
$("body").append(btn); 
+0

¿Qué es .generatedButton? – Xulfee

+0

@ Xulfee Este es un ejemplo de cómo puede agregar 'generatedButton' (sin el punto) al atributo' class' de su botón para encontrarlo con jQuery (http://api.jquery.com/class-selector/) – jigfox

+0

el código que publicó en su pregunta no funciona (por ejemplo, btn var solo contiene una cadena con HTML que daría como resultado un botón si fue procesado por un navegador, pero no el botón en sí), pero actualicé esta respuesta en un intento de ayudarte con eso. –

0

se debe añadir evento click del botón después de que el documento está listo (Cargado):

$(document).ready(function(){ 
    $("#btnDel").click(function() { 
     alert('Button clicked.'); 
    }); 
}); 
+1

¡Edita la respuesta con una explicación! – gsamaras

Cuestiones relacionadas