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 AJAX Basics (retiring) AJAX and APIs Create a callback function

Aaron HARPT
Aaron HARPT
19,845 Points

Code challenge problem

I cannot figure this code challenge out. Any suggestions would be appreciated.

weather.js
$(document).ready(function() {
  var weatherAPI = 'http://api.openweathermap.org/data/2.5/weather';
  var data = {
    q : "Portland,OR",
    units : "metric"
  };
  function showWeather(weatherReport) {
  $("#temperature").text(weatherReport).main.temp;
  }
});
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>What's the Weather Like?</title>
  <script src="jquery.js"></script>
  <script src="weather.js"></script>
</head>
<body>
  <div id="main">
    <h1>Current temperature: <span id="temperature"></span>&deg;</h1>
  </div>
</body>
</html>

What is the challenge?

You need to select #temperature using $() and then call .text() on the result. Pass the value of weatherReport.main.temp into .text(). It takes one line of code.

2 Answers

Hi Aaron,

Your only issue is where you place the right parenthesis in the following code:

$("#temperature").text(weatherReport).main.temp;

weatherReport.main.temp is how you access the temp and that needs to be passed into the text() method. So you would have to move that right parenthesis to the end before the semicolon.

jason chan
jason chan
31,009 Points
$("#temperature").text(weatherReport.main.temp);