繁体   English   中英

JSONP回调失败,需要有关javascript / jquery的帮助

[英]JSONP callback fails, need help with javascript/jquery

我是json的菜鸟(知道一些jquery)....并试图使一个小的脚本正常工作,我想在某个经度/纬度上检索时间,并根据我的需要以位的形式组成此脚本ve在线阅读:

$.getJSON("http://ws.geonames.org/timezoneJSON?lat=47.01&lng=10.2&callback=?", 

    { 'uID': 1 }, 

    function(data) {
        $.each(data, function(i, item) {
            $("<span/>").html(item.time).html(".nowtime");
        });
    });

不用说,它行不通...有人可以帮我忙,还可以解释一下$(“”)。html(item.time).html(“。nowtime”); 手段。 (我不明白第一个是什么)

这是json来源参考: http : //www.geonames.org/export/web-services.html#timezone

谢谢

我原本以为这个问题很可能是在同一原产地政策中 为了对URL进行AJAX请求,它必须与包含Javascript代码的页面在同一域(和端口)中。

但是在乔治四世的更正之后,我检查了一下。

回调中返回的data对象是JSON逃避对象,它不是数组。 您的代码很可能应该读取如下内容:

$.getJSON("http://ws.geonames.org/timezoneJSON?lat=47.01&lng=10.2&callback=?", 
  { 'uID': 1 }, 
  function(data) {
    $("<span/>").html(data.time); // Or maybe with a different selector (see below)
  }
);

选择器也可能是错误的,例如,您可能希望将结果放入id为test的div中。 在这种情况下,包含选择器的行应更改为:

$("#test").html(data.time);

这就是说,获取具有id test的对象( data.time号(#)表示这是一个主意),并使用data.time设置为任何内容来更新内容。

跨度代码将创建一个span元素,然后将其HTML设置为返回的时间值。 但是,代码看起来不对,因为它会立即将HTML设置为“ .nowtime”,但实际上从未将其添加到DOM中。 我猜想最后一个.html('。nowtime')确实应该是.addClass('。nowtime'),那里应该有一个.appendTo(???),但我不确定您在哪里应该附加它。

编辑

另外,我认为您不需要每个功能。 它似乎正在遍历数据对象的成员。 您只想让它直接使用time属性。

示例(尽管,您可能希望将其添加到其他地方的DOM中):

$(function() {
    $.getJSON("http://ws.geonames.org/timezoneJSON?lat=47.01&lng=10.2&callback=?", { 'uID': 1 }, function(data) {
        $("<span/>").html(data.time).appendTo('body');
    });
});

注意:如果您的JSONP调用返回一个对象数组, 需要使用each方法遍历它们。 我对该服务了解不足,无法确定是否有返回对象数组的方法。 但是,此呼叫没有。

您对什么地方不太清楚。 回调似乎正在尝试获取nowtime字段并将其放在页面上的控件中。 我认为这:

$("").html

在双引号中应有一个选择器,以告诉结果结果在哪里。 像$(“#myfield”)....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM