Мне нужно отобразить изображения в браузере, и я хочу получить изображение из ответа JSON и отобразить его в браузере с помощью Javascript. Это то, что ответ JSON выглядит следующим образом:undefined json array file с помощью javascript
var champion = [
{
"name":"Aatrox",
"img" : "Aatrox.png"
},
{ "name":"Ahri",
"img" : "Ahri"
},
{
"name":"Akali",
"img" : "Akali.png"
},
{ "name":"Alistar",
"img" : "Alistar.png"
},
{ "name":"Amumu",
"img" : "Amumu.png"
}
]
JSON внешний файл, называемый data.json. Я новичок. Я написал этот код:
var champ = JSON.stringify(champion);
//var mydata = JSON.parse(champion);
var images = 'mylink/';
var counter;
var name;
for(counter=0; counter<5 ; counter++){
var liTag = document.createElement("li"); //create li tag
liTag.setAttribute("class","champ-list");
document.getElementById("myul").appendChild(liTag); //attach the new tag li on ul tag
var divChamp = document.createElement("div"); //create "champ" div
divChamp.setAttribute("class" , "champ-div");
document.getElementsByClassName("champ-list")[0].appendChild(divChamp); //attack the new tag div on li tag
var spanBox = document.createElement("span"); //new span tag
spanBox.setAttribute("class","champ-box");
document.getElementsByClassName("champ-div")[0].appendChild(spanBox); //attack the new tag span on div tag
var imgTag = document.createElement("img"); //new img tag
images +=champ[counter].img;
imgTag.setAttribute("class", "champ-icon");
imgTag.setAttribute("alt", "champ");
imgTag.setAttribute("src", images);
document.getElementsByClassName("champ-box")[0].appendChild(imgTag); //attach the new tag img on span tag
name = champ[counter].name;
var divName = document.createElement("div"); //new div tag
divName.setAttribute("class","champ-name");
divName.innertHTML=name;
document.getElementsByClassName("champ-icon")[0].appendChild(divName); //attack the new tag div on img tag
}
Он не отображает имя и изображение, но возвращает значение undefined. Другая проблема заключается в том, что первый li
тег вставляется 5 div
, то в первом div
есть 5 span
, первый пролет есть 5 img
тега и первый тег img
есть 5 div
. Как решить все эти проблемы?
Пожалуйста, покажите код (Ajax?) Для извлечения JSON из файла. – trincot
Я не использую ajax. Я написал это: –
В этом случае не задействован JSON, и вы путаете JSON с загрузкой скрипта JavaScript, который присваивает переменную объекту буквальный. Это не имеет никакого отношения к JSON. Если бы был JSON, если бы у вашего файла не было 'var champion =' в начале. Но тогда вы должны загрузить его с помощью запроса Ajax, чтобы вы могли привязать его к переменной по вашему выбору. – trincot