Your current code is adding the text color of red to the hidden checkbox elements and not the styled jQuery UI buttonset.
You can override jQuery UI's default style for active buttons in your list using just CSS.
JS
$('#ButtonList').buttonset();
CSS
#ButtonList .ui-button.ui-state-active .ui-button-text {
color: red;
background-color: pink;
}
Update:
Based on your comments it sounds like you want to use .each()
to iterate over the items instead of using CSS. You can do that by selecting the correct items and adjusting the styles in JS.
$('#ButtonList input[type=checkbox]').change(function () {
var jquiButtonLabel = $(this).next('.ui-button');
var jquiButtonText = jquiButtonLabel.children('.ui-button-text');
if (jquiButtonLabel.hasClass('ui-state-active')) {
jquiButtonText.css({
'color': 'red',
'background-color': 'pink'
});
} else {
jquiButtonText.css({
'color': '',
'background-color': ''
});
}
});