Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   четный-нечетный (https://javascript.ru/forum/misc/16483-chetnyjj-nechetnyjj.html)

kekc91 10.04.2011 13:17

четный-нечетный
 
Привет всем, я очень плохо разбираюсь в js, хотя в css b html довольно нормально себя чувствую. Помогите в написании js кода. Задание: возможный вид html страницы до наведения курсора на гиперсылку
параграф 1.
параграф 2.
параграф 3.
параграф 4.
параграф 5.
параграф 6.
четный-нечетный
после нажатия на гиперсылку нечетные параграфы должны быть справа, а четные соответственно слева. CSS и HTML код я написал если надо напишу. Помогите разобраться, заранее спасибо.

Sweet 10.04.2011 13:52

На будущее: выбирай правильные разделе для тем.
По теме - вот пример:
<style>
.even {
  color: red;
}
.odd {
  color: green;
}
</style>
<div id="someDiv">
  <p>параграф 1.</p>
  <p>параграф 2.</p>
  <p>параграф 3.</p>
  <p>параграф 4.</p>
  <p>параграф 5.</p>
  <p>параграф 6.</p>
</div>
<a href="#" id="someA">Click</a>
<script>
var paragraphs = document.getElementById('someDiv').children,
    length = paragraphs.length;

document.getElementById('someA').onclick = function(){
  for(var i = 0; i < length; i++)
    if( ( i + 1 ) % 2 ) paragraphs[i].className = 'odd';
    else paragraphs[i].className = 'even';
  return false; //, чтобы отменить переход по ссылке
};
</script>

monolithed 10.04.2011 14:28

Sweet, на всякий, нужно проверять nodeType элемента или отказаться от children.

Sweet 10.04.2011 15:20

monolithed, а вот и нет. На всякий, в children хранится HTMLCollection, где nodeType у всех равен 1. Это в childNodes ( объект NodeList ) лежат еще и текстовые узлы, и это там нужна проверка.

monolithed 10.04.2011 15:32

Цитата:

Сообщение от Sweet
в children хранится HTMLCollection, где nodeType у всех равен 1

ага, не так выразился (я имел ввиду, что tagName элемента не мешало бы указывать, а то всякое бывает), извини :)

kekc91 10.04.2011 18:14

большое спасибо, очень помогли


Часовой пояс GMT +3, время: 02:56.