2013-03-10 56 views
0

简单形式我的HTML表是这样的:jQuery的删除表重复一些扭曲

Article | description | links | price 


<table> 
    <tr> 
     <td> 
     </td> 
     OC 90 
     <td> 
      ololooo 
     </td>  
     <td> 
     </td> 
     <td> 
      123 
     </td> 
    </tr> 
    <tr> 
     <td> 
      OC90 
     </td> 
     <td> 
      some other ololo 
     </td> 
     <td> 
      <a href="">link</a> 
     </td> 
     <td> 
      123 
     </td> 
    </tr> 
    <tr> 
     <td> 
      OC 90 
     </td> 
     <td>  
      other other oloooloo 
     </td> 
     <td> 
     </td> 
     <td> 
      321 
     </td> 
    </tr> 
</table> 

但我该怎么办,我是从我的表重复删除,但!只有当第一列(也使大写和删除可用空间时检查)和最后TD(所以文章和价格是相同的),但主要麻烦是留在表中这样的行,这在第三列有链接的...

之后,我的表必须看:

<table> 
    <tr> 
     <td> 
      OC90 
     </td> 
     <td> 
      some other ololo 
     </td> 
     <td> 
      <a href="">link</a> 
     </td> 
     <td> 
      123 
     </td> 
    </tr> 
    <tr> 
     <td> 
      OC 90 
     </td> 
     <td>  
      other other oloooloo 
     </td> 
     <td> 
     </td> 
     <td> 
      321 
     </td> 
    </tr> 
</table> 

我已经试过这样的事情:

var seen = {}; 
    $('table tr').each(function() { 
     var tr = $(this).clone(); 
     if(tr.not(':input')){ //tried for input, is not strange) 


       tr.find("td:eq(2)").remove(); 
       tr.find("td:eq(3)").remove(); 

       // tr.find("td:eq(2)").remove(); 
       var txt = tr.text().toLowerCase().replace(/\s+/g, '');;   
       if (seen[txt]) 
        $(this).remove(); 
       else 
        seen[txt] = true; 
      } 
     } 
    }); 

,但这并不能帮助就是我....

还完整版表是在这里:

http://jsfiddle.net/STrm5/1/

请帮我从表中删除重复....

回答

0

这种尝试:

var seen = {}; 
$('#table tr').each(function() { 
    var tr = $(this).clone(); 
    if (tr.not(':input')) { 

     tr.find("td:eq(1)").remove(); 
     tr.find("td:eq(1)").remove(); 

     var txt = tr.text().toLowerCase().replace(/\s+/g, ''); 
     if (seen[txt]) $(this).remove(); 
     else seen[txt] = true; 
    } 
}); 

Sample

+0

HM ....是好的,但留下这样的tr我没有链接 – brabertaser19 2013-03-10 17:15:08