Reputation: 4006
in my JSON
i get a string back:
selectedDays: "Mon, Tue, Wed, Thur, Fri, Sat"
I need to break this down so that i can add some form of loop
to add a class
but i have no idea how to do this.
is so i can add something like the blow in the loop
$('button[name=SOME_NAME]).addClass('.btn-primary');
Cant figure it out, never used JSON
data before.
Full data returned in console.log
{
endTime: "01:02",
endTimeHr: "01",
endTimeMin: "02",
number: "00000001",
position: "1",
selectedDates: "All days of the month",
selectedDays: "Mon, Tue, Wed, Thur, Fri, Sat",
selectedMonths: "Jan, Aug",
startTime: "01:01",
startTimeHr: "01",
startTimeMin: "01",
timeRange: "-w",
timeType: "specificTime"
};
Current HTML For Day Buttons
<div class="form-horizontal" id="selectWeekdaysSection">
<div class="form-group">
<div class="col-md-offset-2 col-lg-4">
<button id="mon" name="weekdaysbutton" class="btn btn-default" type="button" value="Mon">Mon</button>
<button id="tue" name="weekdaysbutton" class="btn btn-default" type="button" value="Tue">Tue</button>
<button id="wed" name="weekdaysbutton" class="btn btn-default" type="button" value="Wed">Wed</button>
<button id="thur" name="weekdaysbutton" class="btn btn-default" type="button" value="Thur">Thur</button>
<button id="fri" name="weekdaysbutton" class="btn btn-default" type="button" value="Fri">Fri</button>
<button id="sat" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sat">Sat</button>
<button id="sun" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sun">Sun</button>
</div>
</div>
</div>
Screenshot - The blue is the buttons im after applying the style too
Upvotes: 1
Views: 54
Reputation: 6728
STEPS:
const json = {
selectedDays: "Mon, Tue, Wed, Thur, Fri, Sat"
}
let selectedDays = json.selectedDays.toLowerCase().replace(/ /g, '').split(',')
selectedDays.forEach(day => {
$('button#' + day).addClass('.btn-primary')
})
// Log the classes
$('button').each((i, e) => {
console.log($(e).attr('id'), $(e).attr('class'))
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="mon" name="weekdaysbutton" class="btn btn-default" type="button" value="Mon">Mon</button>
<button id="tue" name="weekdaysbutton" class="btn btn-default" type="button" value="Tue">Tue</button>
<button id="wed" name="weekdaysbutton" class="btn btn-default" type="button" value="Wed">Wed</button>
<button id="thur" name="weekdaysbutton" class="btn btn-default" type="button" value="Thur">Thur</button>
<button id="fri" name="weekdaysbutton" class="btn btn-default" type="button" value="Fri">Fri</button>
<button id="sat" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sat">Sat</button>
<button id="sun" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sun">Sun</button>
Upvotes: 4
Reputation: 324
The first thing you'll need to do if you haven't already is to parse the JSON data so you can use it as a JavaScript object. After that you should be able to reference the selectedDays
property and use JavaScript's split string manipulation method to turn the data into something iterable with .each()
Upvotes: 2