2012-09-24 8 views
5

Czy ktoś może mi pomóc proszę w JQuery? Mam dwie tabele na mojej stronie leftTable i rightTable z takimi samymi nazwami kolumn. I wypełnić z DB, ale po prostu zawiera kilka wierszy. Chciałbym nie wyświetlać (lub usuwać) tych wierszy, które istnieją w rightTable!Porównaj dwa wiersze tabel i usuń, jeśli pasuje

tryed to:

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

Nie ma nic trudnego w tym. Wyszukaj informacje o następujących funkcjach jQuery: html() - podaje html elementu, each() - dla każdego wybranego elementu wykonuje określoną funkcję, remove() - usuwa wybrany element. – gotqn

Odpowiedz

2

Przypuszczam, że masz coś takiego:

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

Aby usunąć wiersze z tabeli z id = „T2” można zrobić coś takiego:

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

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

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

tylko pomysł

$(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.

Wspomniałem już, że jest to pomysł tylko dlatego, że nie dostarczyłeś żadnego kodu (HTML), więc pamiętaj, że obie tabele powinny być takie same (klasa/identyfikator) w wierszach, jeśli je posiadają.