Проблема с кодом для For Loop - PullRequest
1 голос
/ 15 января 2010

Я делаю проект для школы и очень стараюсь понять, как создать код / ​​команды для цикла for в Javascript. Любая помощь будет принята с благодарностью.

Проект в основном такой: - Есть два массива: один набор из 10 французских слов, другой с набором из 10 английских слов. Они выглядят так:

var english=new Array();
english[0]="This hotel isn't far from the Eiffel Tower.";
english[1]="What time does the train arrive?";
english[2]="We have been waiting for the bus for one half-hour.";
english[3]="This meal is delicious";
english[4]="What day is she going to arrive?";
english[5]="We have eleven minutes before the train leaves!";
english[6]="Living in a foreign country is a good experience.";
english[7]="Excuse me! I'm late!";
english[8]="Is this taxi free?";
english[9]="Be careful when you go down the steps.";

var french=new Array();
french[0]="Cet hôtel n'est pas loin de la Tour Eiffel.";
french[1]="A quelle heure arrive le train?";
french[2]="Nous attendons l'autobus depuis une demi-heure.";
french[3]="Ce repas est délicieux";
french[4]="Quel jour va-t-elle arriver?";
french[5]="Nous avons onze minutes avant le départ du train!";
french[6]="Habiter dans un pays étranger est une bonne expérience.";
french[7]="Excusez-moi! Je suis en retard!";
french[8]="Est-ce que ce taxi est libre?";
french[9]="Faites attention quand vous descendez l'escalier.";

-Я должен создать функцию с именем setUpTranslation (). Цель этой функции - поместить французские фразы в документ и настроить обработчики событий для событий мыши и нажатия.

Чтобы создать цикл For, он говорит: «создайте цикл for, который проходит через каждый из объектов в коллекции фраз. Для каждого объекта в коллекции сделайте следующее: 1. Измените внутреннее содержимое второго дочернего узла object to french [i] где i - значение переменной-счетчика для цикла for 2. запустить функцию swapFE () в ответ на событие перетаскивания мыши, происходящее во втором дочернем узле объекта; 3. запустить swapEF () функция в ответ на событие, связанное с наведением мыши на второй дочерний узел объекта.

Затем, после настройки цикла for, я буду работать с функциями swapFE () и swapEF (). Но сейчас я просто пытаюсь исправить цикл for.

Вот что у меня есть для функции setUpTranslation:

function setUpTranslation() {
   var phrases = document.getElementsByTagName("p");   

   for (i = 0; i< phrases.length; i++) {

  }

}

Я пробовал множество кодов в цикле for, но, похоже, ни один из них не отображает французскую фразу. Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 15 января 2010

У тебя там хорошее начало. Вы выбрали все элементы

и, предполагая, что их также 10, можете легко просмотреть их, вставив свои значения. Вы можете легко соотнести фразы [i] с французским [i] (или английским [i]).

Часть задания, которое, вероятно, вызвало вас, состоит в том, что вам нужно выбрать второй тег span. У вас уже есть синтаксис для получения всех элементов, так что то же самое должно применяться.

phrases[i].getElementsByTagName(); // I'll let you figure out the parameter.

Затем вы можете получить второй найденный элемент и вставить новое значение.

Вот ссылка на объектную модель документа (DOM), Javascript, который поможет вам выполнить ваше назначение. Я уверен, что вы сами найдете методы, которые вам нужны. :)

http://www.javascriptkit.com/domref/

0 голосов
/ 15 января 2010

Я не работал с JavaScript в течение многих лет, но то, что по сути просит это назначение - это манипулировать DOM (деревом, которое представляет ваш HTML-документ).

Ваша текущая древовидная структура:

Root Дочерний узел типа P Первый дочерний узел типа span и класса pnum Второй дочерний узел типа span и классовой фразы Еще один дочерний узел типа P ... ...

То, что делает ваш текущий код, заключается в том, что на каждой итерации вы получаете индекс от 0 до числа дочерних узлов типа P. Вы можете использовать его для извлечения дочернего узла типа P из фраз массива.

Теперь вы должны использовать этот узел для получения второго дочернего узла (типа с фразой). Для этого есть операция JavaScript. Затем вы можете заменить содержимое этого узла содержимым строки french [i]. Опять же, есть операция JavaScript для этого. Если вы сделаете это правильно и затем запустите функцию настройки, ваш документ должен измениться на месте, чтобы после чисел вместо французских фраз использовалась пустая область.

Поскольку это домашнее задание, я не могу дать вам точный код, который вы должны использовать (к тому же, я слишком долго писал JavaScript). Однако, если вы посмотрите материал, который вы получили из курса, или ссылку на JavaScript, которую вы получили, вы увидите точные операции для выполнения каждой из упомянутых мной вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...