■ 案1:「$(”XXX:even/odd”).addClass(”YYY”)」を使用する
サンプル
<!DOCTYPE html> <html lang="jp"> <head> <meta charset="utf-8"> <title>odd/even</title> <style> li { list-style-type:none; width:40%; } .for-even { background-color:orange; } .for-odd { background-color:green; } </style> <head> <body> <ul> <li>0</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script> <script> $(function() { $("li:even").addClass("for-even"); $("li:odd").addClass("for-odd"); }); </script> </body> </html>
参考文献
http://www.takaya-com.jp/archives/2015/10/jquery_odd_even/■ 案2:「$(”XXX:visible:even/odd”).addClass(”YYY”)」を使用する
案1の問題点* 「display:none」などで表示した場合に対応できない => 『:visible』を追加すると解決できた
サンプル
<!DOCTYPE html> <html lang="jp"> <head> <meta charset="utf-8"> <title>odd/even</title> <style> li { list-style-type:none; width:40%; } .for-even { background-color:orange; } .for-odd { background-color:green; } </style> <head> <body> <input id="on-off-checkbox" type="checkbox" checked>1/2/4/6を表示/非表示<br> <ul> <li>0</li> <li class="on-off">1</li> <li class="on-off">2</li> <li>3</li> <li class="on-off">4</li> <li>5</li> <li class="on-off">6</li> <li>7</li> <li>8</li> <li>9</li> </ul> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script> <script> $(function() { $("li:even").addClass("for-even"); $("li:odd").addClass("for-odd"); $('#on-off-checkbox').change(function() { // 一旦付加したCSSをクリア $("li").removeClass("for-even"); $("li").removeClass("for-odd"); if ($(this).prop('checked')) { $('.on-off').show(500); } else { $('.on-off').hide(500); } // 表示されているCSSを追加 $("li:visible:even").addClass("for-even"); $("li:visible:odd").addClass("for-odd"); }); }); </script> </body> </html>