Я уверен, что это не самый элегантный способ, но с изменением вашей разметки (добавление классов 'a' и 'b' к вашей li - в основном то же значение, что и идентификатор элемента радио).здесь мы идем:
$('label').click(function(){
// if the radio is already checked
if ($('#'+$(this).attr('for')).attr('checked') == 'checked') {
$('ul li').removeClass('selected'); // remove previous selected items
$('.'+$(this).attr('for')).addClass('selected'); // add new selected item
} else {
// radio not checked
$('#'+$(this).attr('for')).attr('checked','checked'); // check radio (altough this should be automatic, without js
$('ul li').removeClass('selected'); // clear previous selected items
$('.'+$(this).attr('for')).addClass('selected'); // add new selected item
}
});
Для скорости я бы предложил добавить идентификатор к ul, скажем "список" и изменить код с
$('label').click(function(){
на
$('#list label').click(function(){
Также от:
$('ul li').removeClass('selected'); // remove previous selected items
до
$('#list li').removeClass('selected'); // remove previous selected items
Удачи!