Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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

Challenge task 1 of 1: Please Help !!!

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

// end

return div; }

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

section.appendChild(div); }

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


  // 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>

1 Answer

Darryl Mah
Darryl Mah
5,492 Points

It might seem daunting with all the code but the solution is a quick one liner :).

The “div” variable contains the headline that we’ll want to add the link after. We can see this with the div.appendChild(h2).

The link is associated with the “link” variable. It was used earlier to append the p variable to it. We can reuse the link variable but this time have it append to a node instead of it being the node itself.

div.appendChild(link) should do it. :)