Foros del Web » Programando para Internet » Jquery »

id dinamico no me funciona

Estas en el tema de id dinamico no me funciona en el foro de Jquery en Foros del Web. Tengo este código para seleccionar/deseleccionar checkbox: Código: <script type="text/javascript"> $(document).ready(function(){ $( ".table" ).on('click', function(e) { id = $(this).attr("id"); }); var active_class = 'active'; $('#idTabla > ...
  #1 (permalink)  
Antiguo 20/03/2015, 12:12
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 5 meses
Puntos: 3
id dinamico no me funciona

Tengo este código para seleccionar/deseleccionar checkbox:
Código:
<script type="text/javascript">
$(document).ready(function(){

	$( ".table" ).on('click', function(e) {
		id = $(this).attr("id");
	});					   
	
	var active_class = 'active';
	$('#idTabla > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
		var th_checked = this.checked;//checkbox inside "TH" table header
		
		$(this).closest('table').find('tbody > tr').each(function(){
			var row = this;
			if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
			else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
		});
	});
	
	$('#idTabla).on('click', 'td input[type=checkbox]' , function(){
		var $row = $(this).closest('tr');
		if(this.checked) $row.addClass(active_class);
		else $row.removeClass(active_class);
	});	
		
 });
</script>
y quiero remplazar el #idTabla con el id obtenido arriba en id = $(this).attr("id");
Pero no hay manera de que funcione, he probado por ejemplo:

Código:
...
$('#'+ id + ' > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
...
y de varias formas más pero no consigo que funcione.
Alguien me puede ayudar?
  #2 (permalink)  
Antiguo 20/03/2015, 12:59
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: id dinamico no me funciona

Tu código tiene un error de sintaxis, fijate si arreglando eso se soluciona. Fijate que falta cerrar la comilla en el llamado a idTabla:

Código Javascript:
Ver original
  1. //$('#idTabla').on('click', 'td input[type=checkbox]' , function(){
  2.  
  3. $('#idTabla').on('click', 'td input[type=checkbox]' , function(){
  4.   var $row = $(this).closest('tr');
  5.   if(this.checked) $row.addClass(active_class);
  6.   else $row.removeClass(active_class);
  7. });

Sino, pone el HTML de la tabla para que podamos ayudarte. Saludos
  #3 (permalink)  
Antiguo 20/03/2015, 15:46
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: id dinamico no me funciona

Gracias GeekGirl
El código funciona correctamente, la comilla simple fue un error de ultima hora porque cambié el nombre del id original a idTabla para que fuera mas comprensible. Lo cual corregiré ahora editando mi post.

El problema como he comentado antes es cuando quiero hacerlo dinámicamente por si creo varias tablas, que me coja el id automáticamente en la que hago click .

Pongo el HTML tal y como pides:
Código HTML:
<table id="tabla1" class="table">
   <thead>
       <tr>
          <th class="center">
            <label class="pos-rel">
               <input type="checkbox" />
             </label>
           </th>
           <th>Seleccionar Todos</th>
       </tr>
   </thead>
                        
                            <tbody>
                                <tr>
                                    <td class="center">
                                        <label class="pos-rel">
                                            <input type="checkbox" />
                                        </label>
                                    </td>
                                    <td>
                                        Opción 1
                                    </td>
                                </tr>   
                                <tr>
                                    <td class="center">
                                        <label class="pos-rel">
                                            <input type="checkbox" />
                                        </label>
                                    </td>
                                    <td>
                                        Opción 2
                                    </td>
                                </tr>              
                            </tbody>
                        </table> 
Saludos

Etiquetas: dinamico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:56.