2016-06-12 4 views
0

テーブルを最低価格から最高価格でソートしようとすると、このコードが表示されます(テーブルにはajaxが入ります)。テーブルソートが期待通りに機能しない

HERESに私はあなたがこれが壊れている見ることができるように

table rows broken

起こっ保つこれで問題を持っているしかし、私は

$("#tableid tbody tr") 
    .detach() 
    .sort(function(a, b) { 

     var dataA1 = $(a) 
     .find("td:eq(5)") 
     .text() 
     .trim(); 

     var dataB1 = $(b) 
     .find("td:eq(5)") 
     .text() 
     .trim(); 

     return parseFloat(dataA1.substring(1)) - parseFloat(dataB1.substring(

      1)); 

     }) 
     .appendTo('#tableid'); 

を持つソートコード。空白の行にはテキストが入っていて、colspan 6にあります。私が望んでいるのは、これらがテーブルの一番下にあり、結果が一番上にあることです。

どのようにすればいいですか?

編集

<tr style="font-weight:bold"> 
     <td> 
      <%= image_tag("provider-logo.png", style: "width: 140px") %> 
     </td> 
     <td colspan="6"> 
      No Tickets Are available from provider 
     </td> 
     </tr> 

これは

おかげ を(私はフィルタではcolspan 6を入れていた)を使用した作業サム

答えて

0

COLSPANを持つテーブルの行の1つである何フィルタを追加し、appendToの代わりにprependToを使用します。

$("#tableid tbody tr") 
    .filter(function() { return $(this).find('td[colspan="6"]').length == 0; }) 
    .detach() 
    .sort(function(a, b) { 

     var dataA1 = $(a) 
     .find("td:eq(5)") 
     .text() 
     .trim(); 

     var dataB1 = $(b) 
     .find("td:eq(5)") 
     .text() 
     .trim(); 

     return parseFloat(dataA1.substring(1)) - parseFloat(dataB1.substring(

      1)); 

     }) 
     .prependTo('#tableid'); 
+0

こんにちは、これは何も変わっていません:)。ありがとうSam –

+0

fikterを見逃して、少し後でこれを試して、返されたものを確認してください –

+0

注:私が示すフィルタは、元の質問に基づいてあなたのマークアップを推測しています。 'find()'の式を次のように変更する必要があります: 'find( 'td [colspan =" 6 "]')' – searlea

関連する問題