1

I am doing a project for school and I'm really struggling to understand how to create the code/commands for my for loop in JavaScript. Any help would be greatly appreciated.

The project is basically this:

  • There are two arrays: one set of 10 French words another with a set of 10 English words. They look like this:
    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.";
    
  • I have to create a function named setUpTranslation(). The purpose of the function is to place the French phrases into the document and set up the event handlers for the mouse-down and mouse-up events.

To create the For Loop it says:

create a for loop that loops through each of the objects in the phrases collection. For each object in the collection do the following:

  1. Change the inner content of the second child node of the object to french[i] where i is the value of the counter variable for the for loop.
  2. Run the swapFE() function in response to the mouse-down event occurring within the object's second child node
  3. Run the swapEF() function in response to a mouse-up event occurring within the object's second child node.

Then after setting up the for loop I'm to work on the swapFE() and swapEF() functions, but right now I'm just trying to fix the for loop.

Here's what I have so far for the setUpTranslation function:

function setUpTranslation() {
   var phrases = document.getElementsByTagName("p");   
   
   for (i = 0; i< phrases.length; i++) {
       
  }

}

I have tried numerous code in the for loop but none of it seems to display the French phrase.

4
  • 2
    I'm a little confused. Does your document already exists and populated with the words from the english[] array? Commented Jan 15, 2010 at 20:03
  • Yes I have an htm document that was already created for me with <p><span class="pnum"> 1</span><span class="phrase"></span></p> through <p><span class="pnum">10</span><span class="phrase"></span></p> listed to call "p". Is this what you are referring to? Sorry I'm still pretty new at this stuff. Commented Jan 15, 2010 at 20:09
  • When i pull up the document to view it all that's listed are numbers no phrases yet. That's what I'm trying to get visible. Commented Jan 15, 2010 at 20:10
  • @Ashley: That clarifies things. The code refers to a document but it was hard without seeing the document. I think I understand it now. Commented Jan 15, 2010 at 20:16

2 Answers 2

1

You've got a great start there. You have selected all of the

elements and assuming there are also 10, can easily walk through them all inserting your values. You can easily correlate phrases[i] with french[i] (or english[i]).

The part of the assignment that probably has you tripped up is that you need to select the second span tag. You already have the syntax down for getting all elements, so the same should apply.

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

You can then grab the second element you find within and insert a new value.

Here is a reference to the Document Object Model (DOM), the Javascript that will help you complete your assignment. I'm sure you'll find the methods you need all by yourself. :)

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

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your encouragement and tips. I appreciate it.
0

I haven't worked with JavaScript for many years, but what this assignment essentially asks you to do is to manipulate the DOM (the tree that represents your HTML document).

Your current tree structure is this:

Root Child node of type P First child node of type span and class pnum Second child node of type span and class phrase Another child node of type P ... ...

What your current code does is that in every iteration, you get an index from 0 to the number of child nodes of type P. You can use that to retrieve the child node of type P from the array phrases.

Now, what you are expected to do, is to use that node to obtain the second child node (the one of type phrase). There is a JavaScript operation for that. Then, you can replace the contents of that node with the contents of the string french[i]. Again, there is a JavaScript operation for that. If you do that correctly and then get to run the setup function, your document should change in place to include the French phrases after the numbers, instead of what is currently a blank area.

Because it's a homework question I can't give you the exact code you have to use (plus, it's been too long since I've written any JavaScript). However, if you look in the material you got from the course or the JavaScript reference that you got, you will see the exact operations to do each of the things I mentioned.

1 Comment

Thanks for the overall summary of what I need to do. It tends to get confusing for me at times and you said it in a way that really simplified the process, thanks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.