Mi selector es:selector de jQuery no se actualiza después de añadir nuevos elementos dinámicamente
$('section#attendance input:last')
Sin embargo, añado otra entrada a la sección # asistencia. Quiero que el selector para seleccionar ahora ese elemento (como debe ser, debido a la :last
Sin embargo, por alguna razón, no lo hace, y no estoy muy seguro de qué
Aquí está mi código completo:.?
$('section#attendance input:last').keydown(function(e) {
if (e.which == 9)
{
var $this = $(this);
var num = parseInt($this.attr('name').match(/\d+(,\d+)?/)[0]) + 1;
$this.parent().append('<input type="text" name="attendance[' + num +']" value="Name and Position" class="medium" />');
}
});
Nuevo Código:
$("section#attendance").on("keydown", "input:last", function(e) {
if (e.which == 9) {
var $this = $(this);
var num = parseInt($this.attr('name').match(/\d+(,\d+)?/)[0]) + 1;
$this.after('<input type="text" name="attendance[' + num +']" value="Name and Position" class="medium" />');
}
});
EDIT: el problema parece estar en la "entrada: pasado, ya que funciona si sólo tiene que utilizar la entrada Además, si añado clase 'última' al. último elemento, funciona cuando uso 'input.last' como selector.
Oye, probé esto, pero por alguna razón, parece que no funciona. Actualicé mi publicación con el nuevo código y revisé los documentos para .on(), pero no puedo determinar qué ocurre. ¡Saludos por la ayuda! – chintanparikh
El problema es que la etiqueta de entrada que agrega no tiene el tipo correcto de atributo de nombre que su código espera. No divulgó su HTML, pero no me parece que su código pueda funcionar debido a la forma en que analiza el número del atributo de nombre. Su expresión regular coincide con dos números con una coma entre ellos, pero la nueva etiqueta de entrada que agrega no tiene ese formato. Puede ver una versión más simple trabajar aquí: http://jsfiddle.net/jfriend00/uVHwK/. Tendríamos que ver su HTML para asesorarlo más específicamente. – jfriend00