3

我有一些 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

4 回答 4

7

使用gt过滤和回调来设置精确的类:

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

(如果你需要,你的问题不清楚ii+1或者i+2

于 2012-10-17T10:27:34.990 回答
2

尝试检查索引

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

if(i!=0){ // check the first index and add 
   $(this).addClass("eg_" + (i+1));
  }
});
</script>
于 2012-10-17T10:28:48.410 回答
0

尝试这个:

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

​</p>

于 2012-10-17T10:29:47.857 回答
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/

于 2015-05-17T05:21:18.100 回答