Попробуй это. Если необходимо, замените y на $ (y).
$('tr').hide();
$('select').change( function(){
var letter = $(this).val();
var dataset = $('#tableID').find('td');
$.each(dataset, function(x, y){
if( y.substr(0,1) == letter){
y.parent().show();
}
});
});
Редактировать
@ SolutionYogi. Вы правы. Я думаю, что эта строка может быть переписана как:
var dataset = $('#tableID').find('tr').children('td').slice(0,1);
Хотя никогда не пробовал.
РЕДАКТИРОВАТЬ 2
Я проверял это. Я надеюсь, что он достаточно элегантен, и у меня больше нет ошибок.
$('tr').hide();
$('select').change( function(){
var letter = $(this).val();
var dataset = $('#tableID').find('tr');
$.each(dataset, function(x, y){
var data = $(y).children().slice(0,2);
$.each(data, function(a, b){
if( $(b).html().substr(0,2) == letter){
$(b).parent().show();
}
});
});
});