2011-12-14 71 views
2

我如何使用jQuery在我的表格中找到子女数量最少(td)的元素(tr)?找到最少孩子的元素?

+0

AFAIK必须有td`的`相同的数字在每个`tr`在`table`要么有可能b`colspan`或`rowspan`属性。你是否有兴趣知道哪个tr的td具有最大的“colspan”? – diEcho 2011-12-14 10:42:32

回答

4
$(document).ready(function(){ 
    var tr = $('tr'); 
    tr.sort(function(a, b) { 
     return $(a).children('td').length - $(b).children('td').length; 
    }); 
    // $(tr).first() is your TR with fewest TDs 
}); 

JSFiddle Example

+0

+1也应该想到这一点。 :D干杯! – 2011-12-14 10:52:58

1

我可能是封装到一个自定义jQuery的包装方法。

(function($) { 

    // blah with function name 
    $.fn.fewestChildren = function() { 

     var $this = $(this).filter('tr'), 
      bookmark = $this.eq(0) 
      ; 

     $this.not(bookmark).each(function() { 
      var $t = $(this); 
      if (bookmark.children('td').length > $t.children('td').length) { 
       bookmark = $t; 
      } 
     }); 

     return bookmark; 
    }; 

})(jQuery); 

这样我就可以使用,如:

var foo = $('#mytable tr').fewestChildren(); 

我真的很想看到的解决方案,而无需使用一个bookmark变量虽然。