簡體   English   中英

在javascript中訪問對象屬性

[英]accessing object properties in javascript

我寫了這段代碼,當我想訪問對象屬性時,它總是說未定義。 誰能指出我的錯誤。

錯誤味精圖片

function readXML()
{
    var xml=new XMLHttpRequest();
    xml.open('GET','index.json',false);
    xml.send();
    var xmlData=xml.responseText;
    document.getElementById("demo").innerHTML =
    xmlData.firstName + " " + xmlData.lastName;


}

json文件

{firstName:"John", lastName:"Doe", age:20}

我記得曾因為嘗試使用它而讀過有關此內容的文章,但您缺少一個簡單的函數,該函數稱為請求的每個狀態更改

編輯,更正功能

意識到您已經為async選項設置了,false) ,它已被棄用並且不再受支持,因此此功能是必需的。

    xml.onreadystatechange = function()
    {
      if (xml.readyState == 4 && xml.status == 200)
      {
        var xmlData = JSON.parse(xml.responseText);
        document.getElementById("demo").innerHTML = xmlData.firstName + " " + xmlData.lastName;
      }
   };

該代碼就在xml.open()命令上方。

在請求狀態的每次更改時都會調用此函數,如果未收到xml.status 200 (這表示請求頁面已成功),也可以對其進行修改以給出錯誤。

該片段經過編輯以適合您的功能,並從官方網站上獲取,用於記錄PHP,JavaScript,JQueryJS等語言。

http://www.w3schools.com/json/json_http.asp

編輯編號 2

發現您的json格式不正確,值和鍵必須用"'括起來。這是它的樣子:

{"firstName":"John","lastName":"Smith"}

由此,您可以使用xmlData.firstNamexmlData["firstName"]兩者執行相同的操作。

接下來, async參數已被棄用,並且是完全異步的,因此您必須將xml.open()更改為此:

xml.open('GET','index.json');

最后,對於onreadystatechange我對其進行了修改以適合您的腳本,該修改已在我的上一個文章中應用。

-----想看直播嗎? -----

我已經上傳並更正了它以適合您的功能,它可以正常工作,並且功能齊全,沒有錯誤處理,這里是一個鏈接:

http://js.x10.bz/helpstack/35739016/main.html

這是源代碼的鏈接:

http://js.x10.bz/helpstack/35739016/main.txt

最后,這是JSON文件的外觀:

http://js.x10.bz/helpstack/35739016/index.json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM