Как заполнить изображение ссылкой, которая хранится в массиве как объекты JSON?

0

Нажмите на мою ссылку 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;   

JSFiddle

Заранее спасибо, очень благодарен за любую помощь.

2 ответа

1
Лучший ответ

Вы должны использовать <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.

  • 0
    спасибо, очень полезно Это прекрасно, за исключением того, что мне просто интересно, почему заголовок не отображается в дополнение к изображению?
  • 0
    Я вас немного не понимаю. Название теперь отображается при наведении на изображение? У меня этого нет Все работает отлично - нажмите меня
Показать ещё 3 комментария
1

Он находится внутри тега <a>. Вам просто нужен атрибут href, чтобы он выглядел как реальная ссылка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню