【发布时间】:2019-12-22 22:51:09
【问题描述】:
我正在使用一个链接来生成 3 个不同的结果,我试图在我的“contactos”函数中访问结果 [0]、结果 [1] 或结果 [2] 中的内容,但我不知道该怎么做它。我认为它可能必须在 For cicle 内,但它也不起作用。有人能帮我吗? (所有其他选择器都可以正常工作,但是在尝试使用 results[] 时它不起作用) 提前致谢。
getResultado();
function getResultado() {
fetch("https://randomuser.me/api/?results=3")
.then(function(response) {
return response.json();
}).then(function(json) {
for (var i =0; i<json.results.length; i++) {
console.log(json.results[i]);
objeto = json.results[i];
document.getElementById("json").appendChild(contactos(objeto));
}
});
}
function contactos(info){
let contactosElement = document.createElement("div");
contactosElement.classList.add("contactos");
let contactoElement = document.createElement("div");
contactoElement.classList.add("contacto");
contactosElement.appendChild(contactoElement);
let imagemElement = document.createElement("div");
imagemElement.classList.add("imagem");
contactoElement.appendChild(imagemElement);
let textoElement = document.createElement("div");
textoElement.classList.add("texto");
contactoElement.appendChild(textoElement);
let tituloElement = document.createElement("h3");
tituloElement.innerText = "Geral";
textoElement.appendChild(tituloElement);
let nomeElement = document.createElement("p");
nomeElement.innerText = "Nome: " + info.name.first;
textoElement.appendChild(nomeElement);
let mailElement = document.createElement("p");
console.log(this.results[0].email);
mailElement.innerText = "Email: " + info.results[0].email;
textoElement.appendChild(mailElement);
let telefoneElement = document.createElement("p");
telefoneElement.innerText = "Telefone: " + info.phone;
textoElement.appendChild(telefoneElement);
let fotografiaElement = document.createElement("img");
fotografiaElement.setAttribute('src', info.picture.large);
imagemElement.appendChild(fotografiaElement);
return contactosElement;
}
【问题讨论】:
-
没有
this.results;当您调用它时,您已经将json.results[i]传递给contactos(),因此您需要info.email。调试的第一个顺序是记录您正在使用的东西。插入console.log(info),您将确切看到通过了什么。 -
非常感谢,但是 json 文件传递了 3 封电子邮件,我想分别访问每封邮件,可以吗?
-
您将数组中的每个结果传递给
contactos- 所以,电子邮件将是info.email就像它是info.name.first等等......你所做的只是搞砸了你的方式从info获取电子邮件...只需删除该行中的results[0] -
我明白,但该链接会生成 3 封电子邮件,它正在访问 onde 的所有 3 封电子邮件,我只想访问其中一封,这可能吗?
-
当然:你有一个
for循环遍历数组;如果您只想添加一个,请删除循环并将其替换为固定索引的代码。
标签: javascript json for-loop fetch