2016-06-12 53 views
0

我有這段代碼嘗試按最低價格到最高價格對錶進行排序(該表由ajax填充)。表分類不按預期工作

繼承人的分類代碼,我

$("#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'); 

然而,我有這個問題這種情況持續發生

table rows broken

正如你可以看到這是壞了。空白行確實有一些文字,並且位於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> 

這是一個具有合併單元格錶行之一(我已經把合併單元格6在過濾器)

感謝 山姆

回答

0

與工作是什麼你已經有了,添加一個過濾器,並用prependTo代替appendTo:

$("#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

嘿那裏,這沒有做任何不同的:)。謝謝山姆 –

+0

等待錯過了fikter,稍後將嘗試這個,看看我得到的回報 –

+0

注意:我展示的過濾器是基於你原來的問題猜測你的標記。您可能需要將'find()'中的表達式更改爲如下形式:'find('td [colspan =「6」]')' – searlea