Javascript,用window []创建一个全局变量

时间:2014-01-24 13:20:33

标签: javascript ajax jquery

所以,我在ajax请求中,成功回调:

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]。< / p>

但我需要在我的页面上的其他函数中检索此变量..我该怎么做?我需要用windows []创建一个全局变量...谢谢!

3 个答案:

答案 0 :(得分: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');
    }
});

答案 1 :(得分: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');
    }
});

答案 2 :(得分: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');
    }
});

然后,您可以访问此变量。避免为您的目的使用全局变量