事件'隐藏'列表的最后一项

时间:2012-03-27 09:51:22

标签: jquery events html-lists show-hide

我正在尝试对Bing API 2.0进行分页。要显示我设置此代码的分页编号:

 if (webResultTotal > 100)
        {

            $('.numbers:lt('+(100)+')').show();
}

这意味着如果结果超过100,则必须显示100个分页编号(带有班级编号)。通常他们有display:none;

所以我的问题是如果结果小于100.我试过通过以下方法解决这个问题:

if (webResultTotal < 100)
        {

            $('.numbers:lt('+Math.min(webResultTotal)+')').hide();

        } 

这将隐藏看起来像这样的数字:

<li class="numbers"><a href="#"> 1 </a></li>
<li class="numbers"><a href="#"> 2 </a></li>
<li class="numbers"><a href="#"> 3 </a></li> etc..

问题是它会隐藏BEGINNING从列表的第一个而不是隐藏最后的数字。所以它不会显示1,2,3相反它会隐藏它们并显示最后的li项目。如何更改代码以便以负面方式隐藏,因此从末尾隐藏li项目---&gt;开始而不是相反?

请注意,我删除了我的代码以使问题变得简单,我的真实代码看起来不同。

1 个答案:

答案 0 :(得分:1)

鉴于您的页面中有一个“非常大”的.numbers元素,并且您希望根据返回的结果数显示/隐藏相应的数字,一个很好的解决方案是:

var itemsToShow = Math.min(webResultTotal, 100);
$("li.numbers").slice(0, itemsToShow).show().end().slice(itemsToShow).hide();

然而,预先填充包含大量元素的页面的概念可能不是最好的方法,而不是生成所需的元素;不幸的是,如果没有更多信息,这是无法解决的问题。