selector dinámico Identificación del jQuery, eliminar a continuación, agregar la clase
-
25-09-2019 - |
Pregunta
Tengo una tabla, con filas que todos tienen una célula de un div con un identificador generado dinámicamente en el formato de BTN-insertidhere.
Cuando se selecciona la fila de tabla, deseo seleccionar este div id, a continuación, quitar una clase y cambiarlo por otro. Esto se debe a querer que tener un cambio de imagen de un símbolo de botón de añadir a un símbolo de borrado que cuando se hace clic.
código javascript:
$('*[class^=day] tbody tr[id^=band]').live('click', function() {
var DivId = $(this).find('div.add').attr('id');
alert(DivId);
$('DivId').removeClass('add').addClass('del');
$('table#fri_myTimes tbody').append($(this)).fadeIn(1000);
return false;
});
Este es un html fragmento del código generado dinámicamente:
<tr id="band-Modest-Mouse">
<td>Modest Mouse</td>
<td>15:25:00</td>
<td>16:10:00</td>
<td>45</td>
<td><div id="btn-Modest-Mouse" class="add"> </div></td>
</tr>
Como se puede ver quiero cambiar la clase 'complemento' a una 'clase' de eliminación. Todas las filas de la tabla en la tabla se genera de esta manera, así como se puede ver que he ido para el enfoque de comodín, que parece funcionar debido a que la alerta se muestra, muestra el div correcta identificación. Sólo hay que cambiar la clase!
Gracias!
Solución
Usted tiene que obtener el objeto jq para el div quitando el '.attr (id)' parte
var DivId = $(this).find('div.add');
...
$(DivId).removeClass('add').addClass('del');
o añadir un # en el selector divId
$("#" + DivId).removeClass('add').addClass('del');
Otros consejos
Prueba a eliminar las comillas alrededor de divId. Es un nombre de variable y no debe estar entre comillas. Como tal:
$(DivId).removeClass('add').addClass('del');
Debido a que su divId variable es un objeto jQuery, no es necesario en absoluto el $()
:
DivId.removeClass('add').addClass('del');