А чего вы хотите, у вас же функция $.ajax выполняется внутри цикла. Судя по коду она должна быть вне его.
Если же вам нужно вызывать success когда отработает все и что-то делать с результатом всех запросов, то можно сделать так:
var promises = [],
linkTpl = 'Home/NewTelephone?idOldTelephone=%1&idContact=%2';
$('.number').each(function () {
// советую хранить информацию не в id-шниках а в data-* атрибутах
// их для этого и придумали
var idNumber = this.id;
var idContact = this.parentNode.id;
// вот тут у вас был баг, у вас один раз формировалась
// правильная ссылка и она больше не менялась.
var link = linkTpl.replace("%1", idNumber).replace("%2", idContact);
// добавляем в очередь обещание
promises.push($.ajax({
type: "GET",
url: link
}));
});
$.when(promises).then(function () {
// выполнится когда все запросы, добавленные в очередь, выполнятся
// результаты запроса будут переданы как аргументы, смотрите документацию
});
https://api.jquery.com/jQuery.when/