2011-06-27 67 views
2

我想添加類,使有20個表項時出現鏈接。計數錶行然後addClass

我在網頁上有多個表,每一個都是一個div.box

我想要做的是,如果有20個TR行addClass做一個鏈接可見的內部。這需要發生在每個單獨的桌子上,我怎麼去設置這個呢?

到目前爲止我有:

$(document).ready(function(){ 
    $(".box tr.table-row").length; 


    $('a.single-product-link').addClass('visible'); 
}); 

但我不知道怎麼了「如果有20 tr.table行addClass」部分做的。 任何建議,將不勝感激。

回答

0

我爲每個.box元素運行相同的函數,因爲它們必須單獨處理。在該函數中,div內的錶行被計數,如果超過20,則將類添加到div內的鏈接。

$('.box').each(function() { 
    var $this=$(this); 
    if ($this.find('tr.table-row').length > 20) { 
     $this.find('a.single-product-link').addClass('visible'); 
    } 
}); 

jsFiddle Demo


另一種可能的變化(使用函數參數.addClass(),並且在函數內部查找最近.box和計數其表中的行):

$('a.single-product-link').addClass(function() { 
    if ($(this).closest('.box').find('tr.table-row').length > 20) { 
     return 'visible'; 
    } 
}); 

jsFiddle Demo

+0

Awes ome謝謝,我使用了第一個變體,它像魅力一樣工作。 – maikunari

+0

@maikunari樂意幫忙。 – kapa

相關問題