2012-09-24 13 views
5

Qualcuno potrebbe aiutarmi per favore in JQuery? Ho due tabelle sul mio sito leftTable e rightTable con gli stessi nomi di colonna. La tabella di sinistra I si riempie da un DB, ma la tabella giusta contiene solo alcune righe. Quello che vorrei fare è non mostrare (o rimuovere) nella tabella sinistra quelle righe che esistono nel rightTable!Confronta due righe di tabelle e rimuovi se corrisponde

Ho provato questo:

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

Non c'è nulla di difficile in questo. Cerca informazioni sulle seguenti funzioni jQuery: html() - fornisce l'html dell'elemento, each() - per ogni elemento selezionato esegue la funzione specifica, remove() - elimina l'elemento selezionato. – gotqn

risposta

2

Suppongo che tu abbia qualcosa di simile:

<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> 

per rimuovere le righe dalla tabella con id = "T2" si può fare qualcosa di simile:

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

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

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

Solo un'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.

Ho già detto che è un'idea solo perché non hai fornito alcun codice (HTML) quindi ricorda che entrambe le tabelle dovrebbero avere lo stesso (class/id) nelle righe se ne hanno.