0

単純な各関数を使用して、順序付けされていないリストのliタグのセットにクラスを追加しています。

$('div ul li').each(function(e){
   $(this).addClass('c' + e);       
});

次のHTMLを返します

<div>
    <ul>
        <li class="c0"></li>
        <li class="c1"></li>
        <li class="c2"></li>
        <li class="c3"></li>
    </ul>
</div>  
<div>
    <ul>
        <li class="c4"></li>
        <li class="c5"></li>
        <li class="c6"></li>
        <li class="c7"></li>
    </ul>
</div>  

クラス名の最後にインデックスを追加することで、本来あるべきことを実行しています。新しい順序付けされていないリストごとにリセットされるようにするにはどうすればよいですか。したがって、このようなものが返されます。

<div>
    <ul>
        <li class="c0"></li>
        <li class="c1"></li>
        <li class="c2"></li>
        <li class="c3"></li>
    </ul>
</div>  
<div>
    <ul>
        <li class="c0"></li>
        <li class="c1"></li>
        <li class="c2"></li>
        <li class="c3"></li>
    </ul>
</div>  

これが私が上に貼り付けたコードのJSフィドルであり、現在私が持っているものの動作バージョンがあります:http: //jsfiddle.net/kdGgK/1/

4

4 に答える 4

3

を使用する.index()と、兄弟に関連する各要素のインデックスがわかります

$('div ul li').each(function(e){
   $(this).addClass('c' + $(this).index());        
});

http://jsfiddle.net/mowglisanu/kdGgK/3/

于 2012-11-20T02:42:16.963 に答える
2

each()関数をネストできます。

$('div ul').each(function() {
   $(this).children('li').each(function(e){
      $(this).addClass('c' + e);        
   });
});
于 2012-11-20T02:42:14.267 に答える
2

最初のものを選択し、ulの時点でループして、各のにulクラスを適用するだけです。liul

$('div ul').each(function(e){
    $(this).find('li').each(function (e) {
        $(this).addClass('c' + e);        
    });
});

JSフィドル: http: //jsfiddle.net/kdGgK/2/

于 2012-11-20T02:42:27.423 に答える
1

順序付けされていないリストごとに個別のクラスを適用するli

 $('div ul').each(function(){
    $(this).children('li').each( function(e){
       $(this).addClass('c' + e);       
     });
  });

順序付けされていないリストごとに1つのクラスを適用しますli

 $('div ul').each(function(e){
    $(this).children('li').addClass('c' + e);       
  });
于 2012-11-20T02:43:06.503 に答える