Seems like the only thing that's wrong with your code is that you're trying to select some descendant elements in an odd way.
$('table.topMenu tr').each(function(){
var list=$(this),
select=$(document.createElement('select')).insertBefore($(this).hide()).change(function(){
window.location.href=$(this).val();
});
// You need to get the child <td>'s of your list, which you can do using .find()
// on the element you want to find child elements in
list.find('td a', this).slice(2).each(function(){
var option=$(document.createElement('option'))
.appendTo(select)
.val(this.href)
.html($(this).html());
if($(this).parent().attr('id') === 'tm_active'){
option.attr('selected','selected');
}
});
});
Here's a jsfiddle of this code working http://jsfiddle.net/andyface/T2k6w/
Hope this does what you need it to