[英]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.