为第一个孩子以外的所有孩子添加课程

时间:2012-10-17 10:26:06

标签: jquery

我有一些html,我想为除第一个孩子以外的所有孩子添加课程。

    <div class="test">
        <div class="different">title</div>
        <div class="same">a</div>
        <div class="same">b</div>
        <div class="same">c</div>
    </div>

以下js

<script>
$(".test").children().each(function(i) {
  $(this).addClass("eg_" + (i+1));
});
</script>

看到这个小提琴

http://jsfiddle.net/aaronk85/HaH2y/

我希望除了第一个孩子之外的每个孩子的div都能得到“eg_”+(i + 1)这样的课程,而我似乎无法使其工作?

我已经看到一些类似的例子,见下面的例子,但不能完全解决这个问题。我在哪里错了?

http://jsfiddle.net/aaronk85/y9bEG/11/

4 个答案:

答案 0 :(得分:7)

使用gt过滤,callback设置精确的类:

$('.test > div:gt(0)').addClass(function(i){
      return 'eg_'+(i+2);
});

(在您的问题中,如果您需要ii+1i+2,则不清楚

答案 1 :(得分:2)

尝试检查索引

<script>
$(".test").children().each(function(i) {

if(i!=0){ // check the first index and add 
   $(this).addClass("eg_" + (i+1));
  }
});
</script>

答案 2 :(得分:0)

试试这个:

$(".test").children().each(function(i) {
    if (i>0) {
        $(this).addClass("eg_" + (i));
    } else {
        i++;
    }
});

答案 3 :(得分:0)

          ##  This code can help answer, and I completed my friends   
    ##





         <div id="list3">
               <ul class="NewFilm">
               <li>test1</li>
               <li>test2</li>
               <li>test3</li>
               <li>test4</li>
               <li>test5</li>
               </ul>
              </div> 
        <script>
       $("li:lt(5)").addClass("eg_1");
</script>
         <style>
        .eg_1, .eg_2, .eg_3 {color:red;}
        </style> 

http://jsfiddle.net/moslem68/oo907b6s/1/