Как использовать переменную из функции в любом месте в JavaScript?
Как сделать так, чтобы функция выполнялась только после того, как другая завершится?
Почему переменная после ajax-запроса имеет значение undefined?
Как можно передать значение из success (ajax)?
Почему постоянно лезет undefined?
Возможно кому-то понадобиться:$(document).ready(function () {

  var xmlParse;
  var xmlDoc = $.ajax({
    type: "GET",
    async: false,
    url: "http://www.cbr.ru/scripts/XML_daily.asp",
    dataType: "xml",
    success: function (xml) {
      xmlParse = $(xml).find('Valute');
    }
  });

  console.log(xmlParse.text());

});
Или так, но это все же не совсем то, что нужно было:$(document).ready(function () {

  xmlDoc().done(appendItem);

  function xmlDoc() {
    var dfd = new $.Deferred();

    $.ajax({
      type: "GET",
      url: "http://www.cbr.ru/scripts/XML_daily.asp",
      dataType: "xml",
      success: function (xml) {
        var xmlParse = $(xml).find('Valute');
        dfd.resolve(xmlParse);
      }
    });

    return dfd.promise();
  }

  function appendItem(xmlParse) {
    xmlParse.each(function () {
      $('#searchlist').append('<a href="javascript:void(0)" class="list-group-item">' +
        $(this).find('CharCode').text() + ' (' +
        $(this).find('Name').text() + ') => ' +
        $(this).find('Value').text() + '</a>');
    });
  }

});