如何在JavaScript中读取页面加载中的值?

时间:2015-11-28 09:34:25

标签: javascript jquery

我有一个名为dropdown-language的API,它返回的内容如下:

{
  "res": [
    {
      "enabled": 0, 
      "flag": "gr"
    }, 
    {
      "enabled": 1, 
      "flag": "us"
    }
  ]
}

如何在页面加载时获取这两个元素并将它们存储在两个全局变量中,例如:

var one = { "enabled": 0 , "flag": "gr" }
var two = { "enabled": 1 , "flag": "us" }

这样我就可以在同一个html页面的其他部分使用了吗?这是我到目前为止所做的:

<script type="text/javascript">
$.ajax({
  url: "dropdown-language",
  success : function(data) {
    obj = JSON.parse(data);
    alert(obj);
  },
  async:false
});
</script>

2 个答案:

答案 0 :(得分:0)

我还自由地稍微更新了脚本,并将您的响应添加到另一个设置中。

首先是解决方案:

$.getJSON( "dropdown-language", function( data ) { // use getJSON for JSON: http://api.jquery.com/jquery.getjson/
    var response = data.res, // get 'res'
        flags = []; // prepare an array for flags

        /**
         * BETTER
         */
        response.forEach(function(element){ // loop through the response
            flags[element.flag] = element.enabled // add to the flags array, like flag['gr'] = 0
        });

        /**
         * KINDA WRONG
         * Will work, but you probably don't want this
         */
        var one = response[0],
            two = response[1];

    console.log(flags); // don't use alert, but display the object using console.log
}

&#39;更好&#39;解决方案是因为你的结果现在是动态的,如果明天你的JSON响应有更多的标志呢?

答案 1 :(得分:-2)

在ajax请求之前声明两个全局变量,并在成功回调中实例化它们

var one, two;

$.ajax({
    url: "dropdown-language",
    success: function (data) {
        obj = JSON.parse(data);
        alert(obj);
        one = obj.res[0];
        two = obj.res[1];
    },
    async: false
});

如果您可以拥有两种以上的语言,那么最好全局存储res