Функция $.ajax()
должна пойти и получить данные, она не сделала этого и выполнила ваш успешный обратный вызов к тому времени, как сразу же после этого достигла кода.
Ваш код заказа на самом деле происходит так:
var id = $(this).children().html();
//Ajax start
if(id == 1){ }
//Ajax end (sometime later, not immediately after)
function(data) { id = data; }
Если вы зависите от этого значения для продолжения, вставьте его в обратный вызов успеха:
var id = $(this).children().html(); // id is 5
$.ajax({
url: 'ajax.php?id=' + id,
success: function(data) {
id = data; // id is 1
if(id == 1){ // id is now 1
...
}
}
});