Reputation: 731
I am trying to insert a dynamic url within a img src.
Below is my HTML and Script code. OnClick of a tab, I am calling a GET HTTP Method, which responds with image url. I want to use this image url with the img src field.
HTML Code
....
<li>
<a href="#" class="tm-tab-link" data-id="hot" onclick="isValid();" id="login">Reviews</a>
</li>
...
<div id="hot" class="tm-tab-content">
<div class="tm-list">
<div class="features_items" id="name"></div>
</div>
</div>
....
Script -
$("#login").on("click", function isValid() {
$.ajax({
url: "https://xyz.foo.net/super",
type: 'GET',
success: function(data) {
var name = "";
for(var i=0;i<=data.length-1;i++){
name += '<div class="tm-list-item">' +
// how to add the image url below DYNAMICALLY?
// how to insert data[i].img ?
'<img src="??????????" id=image1 alt="Image" class="tm-list-item-img">' +
'<div class="tm-black-bg tm-list-item-text">' +
'<h3 class="tm-list-item-name">' + data[i].name + '</h3>' +
'<p class="tm-list-item-description">' + data[i].review + '</p>' +
'</div> ' +
'</div>'
}
$("#name").html("");
$("#name").append(name);
},
error: function(e) {
alert("Refresh Page");
}
});
});
Sample JSON Response -
[
{
"name":"John",
"review":"awesome product",
"img":"https://img.com/cats"
},
{
"name":"Shawn",
"review":"good product",
"img":"https://img.com/dogs"
}
]
Upvotes: 0
Views: 174
Reputation: 781
i just replace url with jsonplaceholder to test
also , id must be unique that's not releated with your problem .
$.ajax({ url: "https://jsonplaceholder.typicode.com/photos", type: 'GET', success: function(data) {
console.log(data);
for(var i=0;i<=data.length-1;i++){
name += '<div class="tm-list-item">' +
'<img src="'+data[i].url+'" id="image' + i + '" alt="Image" class="tm-list-item-img">' +
'<div class="tm-black-bg tm-list-item-text">' +
'<h3 class="tm-list-item-name">' + data[i].name + '</h3>' +
'<p class="tm-list-item-description">' + data[i].review + '</p>' +
'</div> ' +
'</div>'
}
$("#name").html("");
$("#name").append(name);
},
error: function(e) {
alert("Refresh Page");
}
});
Upvotes: 2
Reputation: 26360
Use backticks ( ` ) instead of simple quotes '
or double quotes "
. Backticks support string interpolation ${...}
and multiline :
name += `<div class="tm-list-item">
<img src="${data[i].img}" id="image${i}" alt="Image" class="tm-list-item-img"/>
<div class="tm-black-bg tm-list-item-text">
<h3 class="tm-list-item-name">${data[i].name}</h3>
<p class="tm-list-item-description">${data[i].review}</p>
</div>
</div>`;
EDIT :
As @AmlKamel_ said, you can't have the same ID multiple times in your document. By adding i
to it, you make unique IDs.
Upvotes: 0