【问题标题】:If Else statement jQueryIf Else 语句 jQuery
【发布时间】:2013-11-07 02:20:57
【问题描述】:

我想做什么:

.bx-pager中只有一个.bx-pager-item时,我想隐藏.bx-pager。 有更多的时候,我想显示.bx-pager

我写了这个速记函数:

var n = $(".bx-pager-item").length;
$(".bx-pager").css("display", (n < 2) ? "none" : "block");

当我的页面上只有一个 .bx-pager 时,这可以正常工作,但我想添加更多。当我这样做时,它不再起作用了。有什么建议吗?

JSFiddle

【问题讨论】:

    标签: jquery if-statement each


    【解决方案1】:

    你可以这样做:

    $('.bx-pager').each(function () {
        $(this)[($('.bx-pager-item', this).length < 2) ? 'hide' : 'show']();
    });
    

    【讨论】:

      【解决方案2】:

      在这里工作:http://jsfiddle.net/rGs4t/1/

      在寻呼机上使用 each 将为您做到这一点。

      JS:

      $(".bx-pager").each(function (index, pager) {
          var n = $(".bx-pager-item", pager).length;
          $(pager).css("display", (n < 2) ? "none" : "block");
      
      });
      

      【讨论】:

        【解决方案3】:

        在您的代码中使用.each

        $('.bx-pager').each(function() {
            var count = $(".bx-pager-item", this).length;
            $(this).css("display", (count < 2) ? "none" : "block");
        });
        

        jsFiddle

        【讨论】:

          【解决方案4】:

          您需要遍历所有.bx-pager 元素并检查每次迭代中.bx-pager-item 元素的数量。

          $('.bx-pager').each(function() {
              $(this).css("display", $(".bx-pager-item", this).length < 2 ? "none" : "block");
          });
          

          Update fiddle

          【讨论】:

          • 为我工作。感谢您的解决方案!
          • @YannickL 没问题,很乐意提供帮助。