简体   繁体   中英

Iterate through table and change td background color based on span value

I have a datatable that values fetched from database, I want to change td background color based on value in span. Like if its 0 td color is green else td color is red 在此处输入图片说明

This is my code for adding values in td

<td>
    <center>
        <span>CR303</span><br>
        <span ng-repeat="value in classrooms">
            <span ng-if="value.classroom_name=='CR303'">{{value.Schedules}}</span>
        </span>
    </center>
</td>

First of all, you need to iterate td then get span text, now you can determine and use if condition.

 setInterval(function() { $('td').each(function() { var val = $(this).find('.myval').text(); if (val > 0) { $(this).removeClass("tdRed").addClass('tdGreen'); } else if(val == '0') { $(this).removeClass("tdGreen").addClass('tdRed'); } else if(val =='') { $(this).removeClass("tdGreen").removeClass('tdRed'); } }); }, 1000); 
 .tdRed { color: red; } .tdGreen { color: green; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td> <center> <span>CR303</span><br> <span ng-repeat="value in classrooms"> <span ng-if="value.classroom_name=='CR303'" class="myval">0</span> </span> </center> </td> <td> <center> <span>CR304</span><br> <span ng-repeat="value in classrooms"> <span ng-if="value.classroom_name=='CR303'" class="myval">1</span> </span> </center> </td> <td> <center> <span>CR305</span><br> <span ng-repeat="value in classrooms"> <span ng-if="value.classroom_name=='CR303'" class="myval">22</span> </span> </center> </td> <td> <center> <span>CR306</span><br> <span ng-repeat="value in classrooms"> <span ng-if="value.classroom_name=='CR303'" class="myval">5</span> </span> </center> </td> <td> <center> <span>CR3011</span><br> <span ng-repeat="value in classrooms"> <span ng-if="value.classroom_name=='CR303'" >56</span> </span> </center> </td> </tr> </table> 

 var app = angular.module("Profile", []); app.controller("ProfileCtrl", function($scope) { $scope.JSON_value = [ [{ 'classroom_name': 'CR303', 'Schedules': 0 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }], [{ 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }], [{ 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }], [{ 'classroom_name': 'CR303', 'Schedules': 0 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }], [{ 'classroom_name': 'CR303', 'Schedules': 0 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }], [{ 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 1 }, { 'classroom_name': 'CR303', 'Schedules': 2 }] ] }) 
 table tbody tr td.Color_red { color: red; } table tbody tr td.Color_green { color: green; } 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <body ng-app="Profile" ng-controller="ProfileCtrl"> <table class="table" border="1"> <tbody> <tr> <td ng-repeat="classrooms in JSON_value track by $index" ng-class="{'Color_red': classrooms[0]['Schedules'] != 0 ,'Color_green':classrooms[0]['Schedules'] == 0}"> <span>CR303</span><br> <span ng-repeat="value in classrooms track by $index"> <span ng-if="value.classroom_name=='CR303'">{{value.Schedules}}</span> </span> </td> </tr> </tbody> </table> </body> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM