Нажмите на мою ссылку JSFiddle, чтобы увидеть код в действии для того, что я пытаюсь сделать. Как вы заметили, у меня есть плитка, изображение и ссылка, хранящиеся как объекты JSON, но когда вы запускаете мой код, он не отображает мой заголовок и изображение как ссылку, указанную в моем файле HTML, а также указанные в атрибутах, Я работаю над этим некоторое время, и я не могу понять, когда это кажется чем-то, что должно быть довольно очевидным. У кого-нибудь есть идеи, предложения или решение для меня? Я попытался установить вывод в JavaScript как "", но это не сработало.
HTML:
<a id="food" class="thumbnail" target="_blank">
<img width="200" class="img-shadow">
<hr>
<h3></h3>
</a>
JavaScript:
var data={"food":[
{
"title":"Pumpkin Spice Bread Recipe",
"image":"img/bread.jpg",
"link":"http://willowbirdbaking.com/2011/09/18/pumpkin-spice-pull-apart-
bread-with-butter-rum-glaze/"
}
]}
var output="<ul>";
// Create a variable to temporarily store the data
for (var i in data.food) {
output+="<li>" + data.food[i].title + data.food[i].image + data.food[i].link + "</li>";
}
output+="</ul>";
// Once we go through all of the elements in the array,
// we use the output variable to populate the placeholder div.
document.getElementById("food").innerHTML=output;
Заранее спасибо, очень благодарен за любую помощь.
Вы должны использовать <img/>
для вывода изображения. Ваша ошибка в том, что вы только что отправили ссылку на изображение.
Использовать тег ссылки на изображение: var bob = "some text <img src='"+data.food[i].image+"'/>";
Попробуй это:
var data={"food":[
{
"title":"Pumpkin Spice Bread Recipe",
"image":"img/bread.jpg",
"link":"http://willowbirdbaking.com/2011/09/18/pumpkin-spice-pull-apart-
bread-with-butter-rum-glaze/"
}
]}
var output="<ul>";
// Create a variable to temporarily store the data
for (var i in data.food) {
output+="<li>" + data.food[i].title + "<img src='"+data.food[i].image+"' /> " + data.food[i].link + "</li>";
}
output+="</ul>";
// Once we go through all of the elements in the array,
// we use the output variable to populate the placeholder div.
document.getElementById("food").innerHTML=output;
Если вы хотите, чтобы ваше изображение было ссылкой, вы должны поместить свое изображение в тег <a></a>
следующим образом:
for (var i in data.food) {
output+="<li><a title='" + data.food[i].title + "' href='"+data.food[i].link+"'><img title='" + data.food[i].title + "' src='"+data.food[i].image+"' /></li>";
}
Итак, окончательный код:
var data={"food":[
{
"title":"Pumpkin Spice Bread Recipe",
"image":"img/bread.jpg",
"link":"http://willowbirdbaking.com/2011/09/18/pumpkin-spice-pull-apart-
bread-with-butter-rum-glaze/"
}
]}
var output="<ul>";
// Create a variable to temporarily store the data
for (var i in data.food) {
output+="<li><a title='" + data.food[i].title + "' href='"+data.food[i].link+"'>" + data.food[i].title + "<img title='" + data.food[i].title + "' src='"+data.food[i].image+"' /></li>";
}
output+="</ul>";
// Once we go through all of the elements in the array,
// we use the output variable to populate the placeholder div.
document.getElementById("food").innerHTML=output;
И jsfiddle.
Он находится внутри тега <a>
. Вам просто нужен атрибут href, чтобы он выглядел как реальная ссылка.