2014-01-24 5 views
0

Итак, я нахожусь в Ajax запроса, в успех обратного вызова:Javascript, создать глобальную переменную с окном []

var just_id = $(this).attr('id'); 
$.ajax({ 
       type: "GET", 
       url: "/tw/www/search/", 
       data: {search:tw_search, type:'tw_search'}, 
       success: function (html) { 
          window[just_id] = $(this).attr('tw_username'); 
       } 
      }); 

С помощью этого кода, после того, как я называю с AJAX мой сценарий, мне нужно создайте переменную с именем определенного элемента.

Так что, если я нахожусь на <div id="test"></div>, в var just_id я есть test, а затем, я создать переменную test с window[just_id].

Но мне нужно получить эту переменную в другой функции на моей странице .. Как я могу это сделать? Мне нужно создать глобальную переменную с окнами [] ... Спасибо!

+1

Вы можете получить ее так же. 'Окно [ 'тест'] '. Или вам нужен бит «test» в глобальной переменной? – putvande

+0

Просто объявляйте переменную глобально и используйте ее. Почему вы ввязываетесь в объект окна? –

+1

Если вы не создаете глобальное пространство имен, вы ** не ** "_need для создания глобальной переменной_". Всегда есть лучшее решение. – Alnitak

ответ

0

Невозможно напрямую присвоить индексированное значение объекту окна. Но вы можете сделать так:

window.x = new Array(); 
window.x[4] = 'value here'; 

// And can read from any function like here 
;(function(){ 
alert(window.x[4]); 
})(); 

Для вашего скрипта выше:

window.global = new Array(); 
window.global[just_id] = $(this).attr('id'); 
$.ajax({ 
    type: "GET", 
    url: "/tw/www/search/", 
    data: {search:tw_search, type:'tw_search'}, 
    success: function (html) { 
     window.global[just_id] = $(this).attr('tw_username'); 
    } 
}); 
0

Использование window объявить глобальную переменную:

window.globalVar[];// i have not give window as varible name this may cause error it must be reserved 
var just_id = $(this).attr('id'); 
$.ajax({ 
    type: "GET", 
    url: "/tw/www/search/", 
    data: {search:tw_search, type:'tw_search'}, 
    success: function (html) { 
     globalVar[just_id] = $(this).attr('tw_username'); 
    } 
}); 
+0

почему downvote ... –

0

NB! Прежде всего, если вы используете это для успешного обратного вызова в ajax, это будет иметь другой контекст, а не то, что вы ожидаете.

Ответ: Вы можете определить некоторую переменную в верхней части объявления функции

var just_id = $(this).attr('id'), 
    attrUsername; 

$.ajax({ 
    type: "GET", 
    url: "/tw/www/search/", 
    data: { 
     search: tw_search, 
     type: 'tw_search' 
    }, 
    success: function (html) { 
     attrUsername = $(this).attr('tw_username'); 
    } 
}); 

Затем, вы можете получить доступ к этой переменной. Избегайте использования глобальной переменной для вашей цели

Смежные вопросы