0

当我在浏览器中打开我的 JSON 文件并将其放入控制台时:

var p = document.getElementsByTagName('pre');
for(i=0; i < p.length; i++) {

  var data = JSON.parse(p[i].innerHTML);
  var pc = data.postalcodes;


    for (var key in pc) {
                if (key == "800") {
                    alert("Postcode:" + key + ", name: " + pc[key].name);
                }
            }
}

它工作正常。

现在我只想做同样的 put 必须加载 JSON 文件。我做了这个代码:

<script type="text/javascript">
$(document).ready(function() {

    $("#postcode").focusout(function() {

      $.getJSON("postnr.json", function(json) {
            var data = json;
            var pc = data.postalcodes;
            for (var key in pc) {
                if (key == "800") {
                    alert(key + "yes" + pc[key].name);
                }
            }

        });

    });

})
</script>

但是在 focusout 上什么都没有发生,我认为这是因为 JSON 没有加载。为什么没有加载?

4

1 回答 1

1

首先,这一行表示它只会在元素 #postalcode 未聚焦后加载:

$("#postcode").focusout(function() {

所以我会删除它,只留下这个用于调试:

$(document).ready(function() {
  $.getJSON("postnr.json", function(json) {
    alert("postnr.json has been loaded");
  })
  .error(function(jqXHR, textStatus, errorThrown){
    alert("error: " + errorThrown);
  });
});

如果您收到错误,请从那里检查。

于 2012-11-05T19:29:43.410 回答