Ну тогда в теории $('#test a:nth-child('+el+')').html() должен все таки возвращать HTML, почему нет - трудно сказать, нужно тестить.
Поставьте Firefox и
FireBug, сможете нормально тестить тогда. Там вкладка будет "Сценарий", где можно будет в реальном времени ввести любое jQuery выражение, типа $('#test a:nth-child(0)'), и посмотреть нашлось ли чего на странице. Там же есть вкладка "Консоль", где выводятся все ошибки, AJAX запросы (причем со всеми заголовками, ответами и т.п.) и ваша собственная информация, которая куда как более информативная чем alert. Чтобы в скрипте вывести что-то на консоль достаточно заменить alert на console.log, т.е. типа:
console.log($('#test a:nth-child('+el+')'))