2011-12-14 15 views
2

jQueryを使用して、テーブル内に子ども(td ')の数が最も少ない要素(tr)を見つけるにはどうすればよいですか?子どもの数が最も少ない要素を見つけますか?

+0

AFAIK ''テーブル内の各 'tr 'には、' 'colspan'または' 'rowspan'属性のいずれかが同じ数でなければなりません。どのtrのtdが最大の 'colspan'を持っているか知っていますか? – diEcho

答えて

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乾杯! –

+0

うまく動作します。バイブルの例を追加しました。 –

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変数を利用することなく、解決策を見てみたいです。

関連する問題