Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,008 Points
$("#temperature").text(weatherReport.main.temp);