JavaScript DOM Scripting By Example Improving the Application Code Fix Function that Should be Creating Links

Julien Arseneau
Julien Arseneau
Full Stack JavaScript Techdegree Student 5,200 Points

I really don't understand the challenge.

I can't figure it out!

app.js
const languages = ['Python', 'JavaScript', 'PHP', 'Ruby', 'Java', 'C'];
const section = document.getElementsByTagName('section')[0];

// Accepts a language name and returns a wikipedia link
function linkify(language) {
  const a = document.createElement('a');
  const url = 'https://wikipedia.org/wiki/' + language + '_(programming_language)';
  a.href = url;
  return a;
}

// Creates and returns a div
function createDiv(language) {
  const div = document.createElement('div');
  const h2 = document.createElement('h2');
  const p = document.createElement('p');
  const link = linkify(language);

  h2.textContent = language;
  p.textContent = 'Information about ' + language;
  link.appendChild(p);

  div.appendChild(h2);

  // Your code below
for (let i = 0; i < linkify.length; i += 1) {
  let div = createDiv(languages[linkify]);

  section.appendChild(div);
}
  // end

  return div;
}

for (let i = 0; i < languages.length; i += 1) {
  let div = createDiv(languages[i]);

  section.appendChild(div);
}
index.html
<!DOCTYPE html>
<html>
<head>
  <title>Programming Languages</title>
  <style>
    body {
      font-family: sans-serif;
    }
  </style>
</head>
<body>
  <h1>Programming Languages</h1>
  <section></section>
  <script src="app.js"></script>
</body>
</html>

2 Answers

Steven Parker
Steven Parker
152,680 Points

Here's a few hints:

  • you won't need a loop
  • you'll only need one line of code
  • you only need to add the link, similarly to how the heading is added
  • the code that adds the heading is just above where your code will go and makes a good example