JS против jquery. Раскрасить четные строки
Нашел в нете пример. Есть таблица. Нужно четным строкам таблицы присвоить класс color при помощи чистого javascript.
на jquery все просто и понятно. <script language="javascript" type="text/javascript"> $("tr:nth-child(color)").addClass("color"); </script> Еще пример на чистом js <script language="javascript" type="text/javascript"> var tables = document.getElementsByTagName("table"); for ( var t = 0; t < tables.length; t++ ) { var rows = tables[t].getElementsByTagName("tr"); for ( var i = 1; i < rows.length; i += 2 ) if ( !/(^|s)color(s|$)/.test( rows[i].className ) ) rows[i].className += "color";} </script> Ну тут мне вообще только первые 5-6 строк понятны. Есть ли более адекватная возможность сделать это?. Просто последние 2 строки вообще наводят на непонятные мысли. Спасибо большое. |
|
о спасибо
|
<script type="text/javascript"> window.onload = function(){ var li = document.getElementById('ul').children, i = li.length; while(i--) { li[i].style.backgroundColor = i%2 ? 'red' : 'green'; } }; </script> <ul id="ul"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> |
а может кто если кому не сложно описать что происходит в каждой строке? как можно подробнее. Спасибо.
|
Цитата:
|
Цитата:
|
Захотелось немного подправить ваш скрипт
var tables = document.getElementsByTagName("table"); for ( var t = 0; tables[t]; t++ ) { var rows = tables[t].getElementsByTagName("tr"); for ( var i = 1; rows[i]; i+=2 ) { if ( (" " + rows[i].className + " ").indexOf(" color ") < 0 ) { rows[i].className = rows[i].className ? rows[i].className + " color" : "color"; } } } |
а шахматкой на jqery как сделать???
|
А почему не сделать через CSS с помощью псевдокласса :nth-child ?
|
Часовой пояс GMT +3, время: 11:23. |