javascript - onload后通过json onchange解析而不使用jquery再次获取JSON?

标签 javascript jquery json

我目前正在加载上运行一个 getJSON 函数,其内容如下。

$(document).ready(function() {

   //get year
   var curr_year = $("#year").val(); //returns 2014 from select menu

   $.getJSON(URL, function(json) {
        $.each(json, function(i, item) {
               if(item.year == curr_year){
               //do stuffstuff
               }
            })  
     });

   $("#year").change(function(){
     curr_year = $("#year").val();
     $.each(json, function(i, item) {
               if(item.year == curr_year){
               //do stuffstuff
               }
            })  
   });

});//end on ready

目前 onchange 不起作用,因为我不知道如何在 onchange 中利用已经调用的 json。有人可以告诉我如何完成此任务而不必再次调用 json 吗?

谢谢

最佳答案

将结果存储在两个函数都可以访问的变量中(全局)

var myJson;
$.getJSON(URL, function(json) {
    myJson = json;
    $.each(json, function(i, item) {
           if(item.year == curr_year){
           //do stuffstuff
           }
        })  
 });

myJson 现在已收到您的回复。然而!该 get 调用是异步的,因此您的更改可能会在数据返回之前执行,从而导致空异常。请务必添加支票!

关于javascript - onload后通过json onchange解析而不使用jquery再次获取JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022032/

相关文章:

javascript - 使用 Axios 发布 JSON ('passed value not string or JSON object' 的问题)

javascript - uiwebview 缩放文本

javascript - 在自执行函数中访问阴影变量

javascript - 如何解释正则表达式中特殊字符的不同处理方式?

javascript - 如何使用 Protractor 设置错误消息

javascript - jQuery 添加 html.ActionLink

javascript - 更新数据集时触发 knockout 更改事件(相关下拉列表)

javascript - domToImage 代码仅在 iOS 浏览器上抛出安全错误(Dom 异常 18)

json - 你如何使用 go-simplejson 遍历 json 文件

java - 如何获取 json Web 服务请求的响应时间?