JQuery简单的添加类不起作用

时间:2012-05-08 02:17:32

标签: jquery css

       <div class="newstitle">
            <ul class="newstitle">
                @foreach (var item in Model.Content)
                {
                    if (item.Value != null)
                    { 
                     <li>
                            <div class="newstitle_title">@item.Key.Name</div>
                        </li>
                    }
                }
           </ul> 
  </div>

 <script type="text/javascript">
  $(document).ready(function () {
     $('.newstitle li:nth-child(odd)').addClass('last');
 });
 </script>

我有这个代码,我一直试图跑,它打破了CSS  Broken CSS

但是,它应该如下,请看图像之间的间距:
enter image description here

我该如何解决这个问题?如果你看到div和ul都有相同的类名。

这就是生成的html应该是:

<div class="newstitle">
    <ul class="newstitle">
        <li>image</li>
        <li>image</li>
        <li>image</li>
        <li class="last">image</li>
        <li>image</li>
        <li>image</li>
        <li>image</li>
        <li class="last">image</li>
        <li>image</li>
        <li>image</li>
        <li>image</li>
        <li class="last">image</li>
    </ul>
    </div>

这是css:

.newstitle  {width:600px;overflow:hidden;margin:15px auto;}
.newstitle li {float:left;width:140px;height:170px;overflow:hidden;margin:0px 13px 0px 0px;display:inline;position:relative;}
.newstitle .last {float:left;width:140px;height:170px;overflow:hidden;margin:0px 0px 0px 0px;display:inline;position:relative;}

2 个答案:

答案 0 :(得分:2)

试试这个:

$('li', 'ul.newstitle').filter(function() {return $(this).index()%4===0}).addClass('last');

FIDDLE

答案 1 :(得分:1)

这样的事情

<script type="text/javascript">
    $(document).ready(function () {
        var $li = $('ul.newstitle li'),
            y = 0;
        for (var i=0, n = $li.length; i < n; i++) {
          if ( y++ === 3 ) {
              $($li[i]).addClass("last");
              y = 0;
          }
        }
    });
</script>

希望有所帮助