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, время: 12:27. |