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 trialNils Sens
9,654 PointsExercise "set content of a tag" doesn't work.
This code:
let inputValue let input = document.querySelector('input') inputValue = input.value let link = document.querySelector('[id=link]') link.text = inputValue
actually works when run in preview mode. Why isn't it accepted? I want my badge LOL
let inputValue
let input = document.querySelector('input')
inputValue = input.value
let link = document.querySelector('[id=link]')
link.text = inputValue
<!DOCTYPE html>
<html>
<head>
<title>DOM Manipulation</title>
</head>
<link rel="stylesheet" href="style.css" />
<body>
<div id="content">
<label>Link Name:</label>
<input type="text" id="linkName" value="one">
<a id="link" href="https://teamtreehouse.com"></a>
</div>
<script src="app.js"></script>
</body>
</html>
Steven Parker
231,271 PointsIt doesn't cause an error to omit semicolons at the end of lines. But it's definitely good practice to use them!
3 Answers
Steven Parker
231,271 PointsYou are setting the wrong property.
The challenge asked you to set the text content which would be the "textContent
" property instead of the ""text
" property. The behavior of setting "text
" might not be the same in all browsers.
Also, while none of these affect passing this particular challenge, some general hints:
- there's an easier way to select by id: just put a "#" in front of the id name ("
#link
") - while it's not strictly necessary, it's good practice to end all statements with a semicolon ("
;
") - don't modify code provided by a challenge unless the instructions ask you to explicitly
Nils Sens
9,654 PointsI already fixed that, but great catch! Thank you!!
Nils Sens
9,654 PointsOh yeah I know, the semicolons. I've seen a compelling blog post about them where someone argued that the browser runs the code line by line, except in those one or two cases, where the ; s are really needed. It's similar to the {}s around the body of a conditional that runs only one line of code. Since I dropped unnecessary semicolons my fingers ache less LOL
You sometimes hear that minifying will break semicolon-less code, but code that runs should not be broken by a minifyer. And so far I haven'T had probelms. What doesn't work though is when you don't have a ; at the end of your code and you concatenate multiple sources into one file. Then it can break.
http://www.minifier.org/ for example creates line-by-line code, and you could argue that it's 'less minified'. That is a downside I'd acknowledge. Oh wait, I just checked, it outputs the same minified code when I include ;s...... hm...
Tamas Gonda
7,332 PointsTamas Gonda
7,332 PointsIs there any chance that the problem is you left all the semicolons from the end of the lines in JS? It could be important when you are declaring the variable.