Reputation:
I am trying to create the following HTML dynamically as shown in this fiddle
I was trying it this way. When I click on the Add To swiper-wrapper Button , could anybody please let me know why only the first element is being added in this case ??
<div class="swiper-wrapper"></div>
<input type="button" id="addtoswipperwrapper" value="Add To swiper-wrapper" />
$(document).on("click", "#addtoswipperwrapper", function () {
var treemenudiv = $('<div class="TreeMenu" data-role="collapsible" data-collapsed="true" data-theme="a" data-content-theme="a"></div>');
var h3tagdata = '';
var searchResponse = ["T1", "T2", "T3"]
for (var i = 0; i < searchResponse.length; i++) {
h3tagdata += '<h3>' + searchResponse[i] + '</h3>';
}
treemenudiv.append(h3tagdata);
$('.swiper-wrapper').append(treemenudiv).trigger("create");;
});
Upvotes: 0
Views: 47
Reputation: 3574
You need to place everything inside your loop. You don't need to increment the value of h3tagdata
. secondly place the treemendiv
inside you it will be generated and appending exact number of times as loop executes.
EDIT:
If you want to append the content only once, then you can use any way to execute the code only one. Jquery .one() is the best to use as its executes only once.
$("#addtoswipperwrapper").one("click", function () {
var h3tagdata = '';
var searchResponse = ["T1", "T2", "T3"];
for (var i = 0; i < searchResponse.length; i++) {
var treemenudiv = $('<div class="TreeMenu" data-role="collapsible" data-collapsed="true" data-theme="a" data-content-theme="a"></div>');
h3tagdata = '<h3>' + searchResponse[i] + '</h3>';
treemenudiv.append(h3tagdata);
$('.swiper-wrapper').append(treemenudiv).trigger("create");
}
});
$(document).on("click", "#addtoswipperwrapper", function () {
var h3tagdata = '';
var searchResponse = ["T1", "T2", "T3"]
for (var i = 0; i < searchResponse.length; i++) {
var treemenudiv = $('<div class="TreeMenu" data-role="collapsible" data-collapsed="true" data-theme="a" data-content-theme="a"></div>');
h3tagdata = '<h3>' + searchResponse[i] + '</h3>';
console.log(h3tagdata);
treemenudiv.append(h3tagdata);
console.log(treemenudiv);
$('.swiper-wrapper').append(treemenudiv).trigger("create");
}
});
Upvotes: 1