如判断ul 里面的li 个数 如果大于某个数则给多余的li添加Class

  • a
  • b
  • c
  • d
  • e
  • f

问题是:现在ul里面总共有6个li(ps:li个数有可能变化的),但是我只要显示前面2个跟后面2个li,
中间其余的li全部增加隐藏的class,这样子要怎么做?

 var liLength = $("#外层包装div li").length;  
for(var i = 0; i < liLength; i++){   
    if (i > 1 && i < liLength - 2)
            $("#外层包装div li")[i].style.display='none'; 
}

可以参考jquery的遍历函数:http://www.w3school.com.cn/jquery/jquery_ref_traversing.asp

写了一个类似的给你参照,根据这些遍历函数,肯定能够达到你想要的效果
(引用了在线的jquery库)

 <!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="http://code.jquery.com/jquery-1.7.2.js" ></script>
    <script>
        $(function(){
            var sum=0;
            $("#list").children("li").each(function(){
                sum++;
            });
            var i=0;
            $("#list").children("li").each(function(){
                i++;
                if(i!=1&&i!=2&&i!=sum&&i!=sum-1){
                    $(this).addClass("red");
                }
            });
        });

    </script>
    <style type="text/css">
        .red{
            color: red;
        }
    </style>
</head>
<body>
    <ul id="list">
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
    </ul>
</body>
</html>