如果有超过3个孩子,请隐藏最后一个孩子

时间:2014-12-11 03:14:31

标签: javascript jquery

如果连续超过3个td,则尝试隐藏最后一个td。有些东西不起作用

这是jquery代码

      if (screen.width < 320) {
        $(".slider-navigation-thumbs table tr").each(function(){
           var tdsnumber = $(this).children().length;
          if (tdsnumber > 3) {
            $(this).child().last().hide();
          } 
        });
      }

其他信息 为了实验,删除了屏幕尺寸读取部分。没有它,工作正常。所以,我猜错了就在那里,但无法弄清楚错误是什么。尝试增加320到340,但仍然没有。

4 个答案:

答案 0 :(得分:2)

没有child()方法。您可能需要children()

答案 1 :(得分:1)

您正在使用.children().length但之后您正在使用.child();这显然是错的。

那就是说,这里更简单:

$(".slider-navigation-thumbs table tr > td:gt(2):last").hide();

它选择<tr>里面的索引高于2的子句(意味着第四个子项开始),然后选择该集合的最后一个元素;最后,它隐藏了结果元素。

如果只有三个子元素,它将返回一个空集,因此不会隐藏任何内容。

答案 2 :(得分:0)

您需要将.child()替换为.find('td').children()

if (screen.width < 320) {
    $(".slider-navigation-thumbs table tr").each(function(){
       var tdsnumber = $(this).children().length;
      if (tdsnumber > 3) {
        $(this).find('td').last().hide();
      } 
    });
  }

答案 3 :(得分:0)

没有.child()方法,

if (screen.width < 320) {
    $(".slider-navigation-thumbs table tr").filter(function(){
        return  $(this).children().length > 3
    }).children('td:last-child').hide()
}