javascript - jquery append() is creating two div elements -
i adding div elements dynamically dom using jquery append(). have made controller takes json data using $http.get() , calls function create_mission add divs dom. have create div every object of json, have done using loop , iterating json.length times. here 2 div elements gets created @ every iteration.
here controller
mission_vision_mod.controller('mission_visionctrl', ['$scope', '$http', function ($scope, $http) { $scope.visiontext = "here content of vision"; $scope.bkclr = ['bk-clr-one', 'bk-clr-two', 'bk-clr-three', 'bk-clr-four']; $scope.progressbar = ['progress-bar-warning', 'progress-bar-danger', 'progress-bar-success', 'progress-bar-primary']; $scope.missioncount = ['col-md-0', 'col-md-12', 'col-md-6', 'col-md-4', 'col-md-3', 'col-md-2.5', 'col-md-2']; $http.get('m_id.json').success(function (data) { $scope.missions = data; $scope.len = data.length; create_mission(); }); var create_mission = function () { var i; (i = 0; < $scope.missions.length; i++) { $("#missionstart").append("<div id='" + $scope.missions[i].id + "' class='" + $scope.missioncount[$scope.missions.length] + "'></div>"); $("#missionstart").find("#" + $scope.missions[i].id + "").append("<div class='dashboard-div-wrapper " + $scope.bkclr[i] + "'></div>"); $("div#" + $scope.missions[i].id + "").find(".dashboard-div-wrapper").append("<h1>" + $scope.missions[0].missioninfo + "</h1>"); $("div#" + $scope.missions[i].id + "").find(".dashboard-div-wrapper").append("<div class='progress progress-striped active'></div>"); $("div#" + $scope.missions[i].id + "").find(".dashboard-div-wrapper").find("div").append("<div class='progress-bar " + $scope.progressbar[i] + "' role='progressbar' aria-valuenow='80' aria-valuemin='0' aria-valuemax='100' style='width: 80%'></div>"); $("div#" + $scope.missions[i].id + "").find(".dashboard-div-wrapper").append("<ul class='unorderedlist'></ul>"); } } }]);
the html file
<div class="content-wrapper" ng-controller="mission_visionctrl"> <div class="container-fluid"> <div id="header-wrapper" class="container"> <div id="header" class="container"> <div id="logo"> <h1 class="page-head-line" id="visionh"><a>vision</a></h1> <p id="visionp"><a rel="nofollow">{{visiontext}}</a></p> </div> </div> </div> <div class="row" id="missionstart"> </div> </div>
the json file
[{"id":1,"missioninfo":"mission"},{"id":2,"missioninfo":"mission1"},{"id":3,"missioninfo":"mission2"},{"id":4,"missioninfo":"mission3"}]
since have used angularjs, use angularjs solution
<div class="content-wrapper" ng-controller="mission_visionctrl"> <div class="container-fluid"> <div id="header-wrapper" class="container"> <div id="header" class="container"> <div id="logo"> <h1 class="page-head-line" id="visionh"><a>vision</a></h1> <p id="visionp"><a rel="nofollow">{{visiontext}}</a></p> </div> </div> </div> <div class="row" id="missionstart"> <div id="{{mission.id}}" ng-class="missioncount[missions.length]" ng-repeat="mission in missions"> <div class="dashboard-div-wrapper" ng-class="bkclr[$index]"> <h1>{{mission.missioninfo}}</h1> <div class="progress progress-striped active"> <div class="progress-bar" ng-class="progressbar[$index]" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%"></div> </div> <ul class="unorderedlist"></ul> </div> </div> </div> </div> </div>
then
mission_vision_mod.controller('mission_visionctrl', ['$scope', '$http', function ($scope, $http) { $scope.visiontext = "here content of vision"; $scope.bkclr = ['bk-clr-one', 'bk-clr-two', 'bk-clr-three', 'bk-clr-four']; $scope.progressbar = ['progress-bar-warning', 'progress-bar-danger', 'progress-bar-success', 'progress-bar-primary']; $scope.missioncount = ['col-md-0', 'col-md-12', 'col-md-6', 'col-md-4', 'col-md-3', 'col-md-2.5', 'col-md-2']; $http.get('m_id.json').success(function (data) { $scope.missions = data; $scope.len = data.length; }); $scope.missions = data; $scope.len = data.length; }]);
Comments
Post a Comment