Javascript 如何使用JS Ajax通过单击用户id获取用户的详细信息?
如何通过单击用户id获取用户的详细信息?我从JSON API获取了数据。但我知道我需要更多的功能,当用户单击该链接时,我会将id作为链接,只有该id的数据才会显示在JSON API服务器上。我想知道使用JS AJAX如何实现。请帮助 这是我的密码Javascript 如何使用JS Ajax通过单击用户id获取用户的详细信息?,javascript,json,ajax,Javascript,Json,Ajax,如何通过单击用户id获取用户的详细信息?我从JSON API获取了数据。但我知道我需要更多的功能,当用户单击该链接时,我会将id作为链接,只有该id的数据才会显示在JSON API服务器上。我想知道使用JS AJAX如何实现。请帮助 这是我的密码 <html> <body> <table class = "src"> <tr><th>Name</th><th>id</t
<html>
<body>
<table class = "src">
<tr><th>Name</th><th>id</th></tr>
<tr><td><div id = "Name"></div></td>
<td><div id = "Id"></div></td></tr>
</table>
</body>
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
var url = "https://jsonplaceholder.typicode.com/users";
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Javascript function JSON.parse to parse JSON data
var jsonObj = JSON.parse(this.responseText);
// jsonObj variable now contains the data structure and can
// be accessed as jsonObj.name and jsonObj.country.
var name="";
var id="";
for(var i = 0; i < 10; i++) {
name += '<a href="">' + jsonObj[i].name + '</a> <br>';
id+=jsonObj[i].id + '<br>' ;
}
document.getElementById("Name").innerHTML = name;
document.getElementById("Id").innerHTML = id;
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
</script>
</html>
名字
var xmlhttp=new XMLHttpRequest();
变量url=”https://jsonplaceholder.typicode.com/users";
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
//Javascript函数JSON.parse解析JSON数据
var jsonObj=JSON.parse(this.responseText);
//jsonObj变量现在包含数据结构并可以
//可作为jsonObj.name和jsonObj.country访问。
var name=“”;
var id=“”;
对于(变量i=0;i<10;i++){
名称+='
';
id+=jsonObj[i].id+'
';
}
document.getElementById(“名称”).innerHTML=Name;
document.getElementById(“Id”).innerHTML=Id;
}
}
open(“GET”,url,true);
xmlhttp.send();
以id
div为目标,并向其添加click listener。内部处理程序使用e.target.innerText
document.querySelectorAll("#tab div.userid").forEach(elem => elem.addEventListener("click", function(e) {
let xmlhttp = new XMLHttpRequest();
let url = `https://jsonplaceholder.typicode.com/users/${ e.target.innerText}`;
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
user = JSON.parse(this.responseText);
//handle your user data here
})
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
下面的示例在数组中查找用户并显示其数据。此处不进行请求,因为数组中已有可用数据
var用户=[];
函数getUsers(){
设xmlhttp=newxmlhttprequest();
让url=”https://jsonplaceholder.typicode.com/users";
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
users=JSON.parse(this.responseText);
let tableString=`Name id`
users.forEach(obj=>{
表字符串+=`
${obj.name}
${obj.id}
`
});
document.getElementById(“tab”).innerHTML=tableString;
document.queryselectoral(“#tab div.userid”).forEach(elem=>elem.addEventListener(“单击”),函数(e){
getDataOfUser(e.target.innerText)
}))
}
}
open(“GET”,url,true);
xmlhttp.send();
}
函数getDataOfUser(id){
让user=users.find(user=>user.id==id);
document.querySelector(“.info user”).innerHTML=`用户信息:
名称:${user.Name}
电子邮件:${user.Email}
电话:${user.Phone}
网站:${user.Website}
`
}
getUsers()代码>
#选项卡td{
边框:1px纯黑
}
.userid{
光标:指针;
}
点击id获取用户数据
您想再次请求特定用户id的数据,还是根据已经获取的用户数据中的id显示用户?是的,我想通过单击显示的id再次请求特定用户id的数据。为什么?你已经在请求中获取了数据,对吗?我还想显示用户的地址、地理位置和公司。user.address.city,user.company likewiseHi bro你能通过发送另一个http请求来帮助我获取用户信息吗?