#javascript
Вопрос:
Я создал 10 , каждый из которых отображает один идентификатор в API. Я использовал querySelectorAll, чтобы найти все и использовать цикл for, чтобы содержимое каждого содержало один идентификатор в API, но когда я пытаюсь закодировать, как вы можете видеть, один будет содержать все десять идентификаторов, и я не знаю, как это сделать возможным
function onResponse(response) {
return response.json();
}
function data(data) {
//create a function to display the element
var htmls = data.map(function(post) {
return `<li>
<h2> ${post.id}</h2>
</li>`
});
var html = htmls.join('');
const p = document.querySelectorAll('span');
for (let i = 0; i < p.length; i ) {
p[i].innerHTML = html;
}
}
fetch('https://jsonplaceholder.typicode.com/users').then(onResponse).then(data);
<body>
<form>
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</form>
</body>
</html>
Ответ №1:
html
это уже HTML каждого id
из них . Вы назначаете его каждому span
innerHTML
, в результате чего получается 9 дубликатов.
Вместо этого просто назначьте span
родительскому innerHTML
:
function onResponse(response) {
return response.json();
}
function data(data) {
//create a function to display the element
var htmls = data.map(function(post) {
return `<li>
<h2> ${post.id}</h2>
</li>`
});
var html = htmls.join('');
const div = document.querySelector('div');
div.innerHTML = html;
}
fetch('https://jsonplaceholder.typicode.com/users').then(onResponse).then(data);
<body>
<form>
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</form>
</body>
</html>