所以我正在嘗試使用此代碼從此鏈接https://covid.ourworldindata.org/data/owid-covid-data.json獲取 JSON 資料
$.ajax({
type: "GET",
url: "https://covid.ourworldindata.org/data/owid-covid-data.json/",
success: function (data) {
$("h5").each(function () {
var code = $(this).data("code"); // atribut data-code
$(this).html(data[code]["location"]);
});
},
});
它作業正常,標簽也設定為我想要的值,但是當我檢查控制臺時出現此錯誤
Uncaught TypeError: Cannot read properties of undefined (reading 'location')
它指向這條線
$(this).html(data[code]["location"]);
如何解決?
uj5u.com熱心網友回復:
code變數中包含的任何內容在data物件中都不存在,這意味著它回傳undefined. 然后您嘗試呼叫不存在的location屬性,undefined因此它回傳錯誤。您可以通過提前回傳來防止它:
var code = $(this).data("code");
if (!data[code]) return;
$(this).html(data[code]["location"]);
或者,如果您需要向這些元素添加一些內容,無論它是否存在,您都可以執行以下操作:
var code = $(this).data("code");
if (!data[code]) {
$(this).html('Value does not exist');
return;
};
$(this).html(data[code]["location"]);
uj5u.com熱心網友回復:
我的猜測是您有一些<h5>沒有code 資料集屬性的元素,因此您實際上是在嘗試使用
data[undefined].location
這永遠不會奏效。
確保您只查看具有適當資料的元素
$.getJSON("https://covid.ourworldindata.org/data/owid-covid-data.json")
.done(data => {
$("h5[data-code]").each((_, h5) => {
$(h5).html(data[h5.dataset.code]?.location)
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339452.html
標籤:javascript 查询 json
上一篇:Codeigniter使用$this->form_validation->set_rules時“無法找到驗證規則”
