簡體   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