计算表行然后addClass

时间:2011-06-27 17:46:26

标签: jquery html-table dom-traversal

我正在尝试添加类,以便在有20个表项时显示链接。

我在页面上有多个表,每个表都在div.box

我想要做的是,如果有20行的addClass可以使链接可见。这需要发生在每个单独的表中,我将如何设置它?

到目前为止,我已经:

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


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

但我不知道怎么做“如果有20个tr.table-row addClass”部分。 任何建议将不胜感激。

1 个答案:

答案 0 :(得分: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