2012-09-24 79 views
5

¿Alguien podría ayudarme por favor en JQuery? Tengo dos tablas en mi sitio leftTable y rightTable con los mismos nombres de columna. El leftTable Lleno desde un DB, pero el rightTable solo contiene algunas filas. Lo que me gustaría hacer es no mostrar (o eliminar) en el leftTable las filas que existen en el rightTable!Comparar dos filas de tablas y eliminar si coincide

He probado esto:

$("#tableLeft tr").each(function(){ 
    if($(this).find("td")[0].innerHTML == $("#tableRight tr").find("td")[0].innerHTML) 
    { 
     $(this).remove; 
    } 
}); 
+0

No hay nada difícil en esto. Buscar información sobre las siguientes funciones de jQuery: html() - da el html del elemento, cada() - para cada elemento seleccionado ejecuta una función particular, remove() - borra el elemento seleccionado. – gotqn

Respuesta

2

supongo que tienes algo como esto:

<table id="T1"> 

    <tr><td>111</td></tr> 
    <tr><td>222</td></tr> 
    <tr><td>333</td></tr> 

</table> 


<table id="T2"> 

    <tr><td>444</td></tr> 
    <tr><td>111</td></tr> 
    <tr><td>333</td></tr> 

</table> 

Para eliminar filas de la tabla con id = "T2" se puede hacer algo como esto:

$('#T1 tr').each(function(){ 

    var currentRowHTML=$(this).html(); 

    $('#T2 tr').each(function(){ 
     if($(this).html()===currentRowHTML){ 
      $(this).remove(); 
     } 
    }); 
}); 
2

Sólo una idea

$(function(){ 
    $('#btn').on('click', function(e){ 
     $('#right_table tbody tr').each(function(){ 
      var row=$(this).html(); 
      $('#left_table tbody tr').each(function(){ 
       if(row==$(this).html()) $(this).remove(); 
      }); 
     }); 
    }); 
});​ 

DEMO.

Ya he mencionado que es una idea solo porque no proporcionó ningún código (HTML), así que recuerde que ambas tablas deben tener el mismo valor (clase/id) en las filas, si es que tienen alguna.

Cuestiones relacionadas