0

Столкнулся с проблемой, как вытащить данные из локальной переменной в глобальную? Читал в интернете, много запутанных выходов, (может есть полегче способы?) У меня есть функция ( как я понял объект ). В ней хранится переменная с данными. Нужно вытащить их в глобальную переменную ( за объект ). Что бы использовать в другой функции.

$(document).ready(function () {
  xhr = new XMLHttpRequest();
  xhr.open("GET", "http://www.gosugamers.net/dota2/gosubet", true);
  xhr.send(null);
  xhr.onreadystatechange = function() {
    if (this.readyState != 4) return;
    {
      if (xhr.responseText)
      {
        var data = xhr.responseText;
        var href = $('#col1', data).children('div:eq(1)').children('div').children('table').children('tbody').children('tr:eq(0)').children('td:first').children('a').attr('href');<br/>
      }
    }
  }
});
var hr = href // вот сюда, вытащить ссылку, из var href. для того, что бы потом вставить jquery запрос, вместо url
$(document).ready(function () {
  xhr = new XMLHttpRequest();
  xhr.open("GET", hr, true);
  xhr.send(null);
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4)
    {
      if (xhr.responseText)
      {
        var data = xhr.responseText;
        var basse = $('.match-opponents', data);
        var best = basse.children('div:eq(2)').children('p').html();
        $('#loc').html(best);
      }
    }
  }
});
}, 10000);
user185447
  • 1,705
Black_Dog
  • 153

2 Answers2

1

А я если честно вообще не понимаю в чём вопрос

    var x;
function sum(){
  x = 5;
  //console.log(x);
}
sum();
console.log(x);

Вот простой пример, если убрать var x; которая объявлена до ф-ции, то переменная будет доступна локально внутри ф-ции, но если её объявить до ф-ции, то её можно использовать как глобальную переменную.

  • проблемы начнутся когда автор вопроса поймет что эта программа будет исполняться не снизу вверх строчка за строчкой :) потому на момент вызова var hr = href href будет еще undefined. – Dmitry V. Nov 14 '15 at 21:06
  • я еще "зеленый" в javascript и jquery, так сказать учусь еще. Так что из за этого такие глупые вопросы =) А насчет undefined уже столкнулся, долго не мог понять в чем проблема, пока дебагер от гугла не помог =) Все таки придумал как решить) – Black_Dog Nov 14 '15 at 21:22
  • @Black_Dog - Я догадываюсь, что Вы придумали. Кусок от Вашей "придумки" попал в вопрос - }, 10000);. Не надо этого делать. –  Nov 15 '15 at 05:18
  • Спасибо большое за ответ :) – Black_Dog Nov 15 '15 at 08:38
0

Да просто var не пишите перед переменной, будет глобальная :)

> function a(x) {  meGonneBeGlobal = 123;  x++; return x; }
< undefined
> a(2)
< 3
> meGonneBeGlobal
< 123

Но вообще BOPOH прав, это code-smell. Вам нужно в сторону future копать.

Dmitry V.
  • 794
  • 3
  • 14