Il filter jQuery complesso () non funziona

Sto cercando di inserire dynamicmente i link per tornare alla parte superiore del documento alla fine di each sezione di una pagina web (triste per dire, ma è layout a tabella). Sto utilizzando il selettore del filter() jQuery filter() e, mentre non ottengo alcun errore, non sta apportndo alcuna modifica all'output del browser. Quando utilizzo alert() con la variabile, viene visualizzato Object object . Capisco che il problema è nella linea in cui definisco il filter stesso, ma non sono riuscito a trovare un esempio simile e non so come risolvere il problema.

Ecco il codice:

HTML

 <table> <tr class="head"><td colspan="2">section title 1 </td></tr> <tr><td>text</td> <td><img /></td> </tr> <tr><td>text</td> <td>< img /></td> </tr> <tr class="head"><td colspan="2">section title 2 </td></tr> <tr><td>text</td> <td><img /></td> </tr> <tr><td>text</td> <td>< img /></td> </tr> <!-- you get the point --> 

JavaScript

 $(document).ready(function(){ var lastRow = $('tr').filter(function(){ return $(this).next()==$(".head"); // Here's the problem, IMO }); var a = '<tr class="toTop"><td class="top" style="text-align:right" colspan="2"><a href="#main">go to top &uarr;</a></td></tr>'; lastRow.after(a); }); 

Lo script tenta di select each row che precede una row con class="head" e inserisce una row con un collegamento top .

Questo è perché si confrontano 2 oggetti diversi che sono sempre false , si dovrebbe utilizzare is properties; di metodo o length :

 var lastRow = $('tr').filter(function(){ return $(this).next(".head").length; // return $(this).next().is(".head"); }); 

Tuttavia, suggerisco di utilizzare il metodo .prev() :

 $('tr.head').prev(); // selects the previous sibling tr element