JavaScript AJAX Basics (retiring) Programming AJAX Processing JSON Data

Leo Marco Corpuz
Leo Marco Corpuz
18,975 Points

What's wrong with my code?

List isn't showing up. I'm guessing my curly braces are misplaced.

Leo Marco Corpuz
Leo Marco Corpuz
18,975 Points

Here's my code:

var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.readyState===4){ var employees=JSON.parse(xhr.responseText); var statusHTML="<ul class='bulleted'>"; for(var i=0; i<employees.length; i+=1){ if(employees[i].inoffice===true){ statusHTML+="<li class='in'>"; }else{ statusHTML+="<li class='out'>";} } statusHTML+=employees[i].name; statusHTML+="</li>"; } statusHTML+="</ul>"; document.getElementById('employeeList').innerHTML=statusHTML;

};

xhr.open('GET','../data/employees.json'); xhr.send();

Steven Parker
Steven Parker
171,327 Points

Can you make a snapshot of the workspace and provide the link to it?

4 Answers

Thomas Gauperaa
Thomas Gauperaa
3,020 Points

Looks like you have a curly brace too much at the end of this line? ;

statusHTML+=«<li class=‘out’>»;}}

Steven Parker
Steven Parker
171,327 Points

I don't think that's an issue. One brace closes the "else" block and the other one ends the "for" loop block.

In fact, I'd already checked for mismatched braces before I asked for the snapshot.

Thomas Gauperaa
Thomas Gauperaa
3,020 Points

Steven Parker ah, you're right. Maybe something wrong with the file he's loading?

Steven Parker
Steven Parker
171,327 Points

The snapshot will make a complete analysis possible.

Leo Marco Corpuz
Leo Marco Corpuz
18,975 Points

Thanks! I compared my code to the solution and it turned out that I needed an extra closing curling brace to close the response function.

Steven Parker
Steven Parker
171,327 Points

By "response function" do you mean the one assigned to onreadystatechange in the example? The code shown above seems to have properly matching pairs of open and close braces.

Leo Marco Corpuz
Leo Marco Corpuz
18,975 Points

Yeah, but I was making changes with the curly braces after I made the post so my code was a little different when I compared it to the solution.