无法使用JavaScript读取未定义的属性“”

时间:2018-08-16 12:44:14

标签: javascript

当我在控制台日志中运行命令digitalInfo;时,页面将提供以下数据。

> digitalInfo;
< >{version: "1.0", page: {...}, attributes: {...},event: Array(0), ...}

如果我扩展此响应并转到"page"键,则会得到页面键的日期:

>page:
>pageInfo: {pageName: "Thank You", language:"en"}
>productInfo: [{}]
>user: {loginStatus: "Not LoggedIn", userType: "Anonymous"}

如果我展开productInfo,则会得到productInfo键的以下日期:

productInfo: Array(1)
0
flightTime: "Flight-1 06:50~Flight-1 08:35"

现在,我想获取flightTime的值,因此我在使用以下命令(第一个命令):

var departureInfo=digitalInfo.page.productInfo[0].flightTime;

但这给了我错误@productInfo [0]为Cannot read property '0' of undefined

我修改了命令,并将其设置为(命令第二个):

var departureInfo=digitalInfo.page.productInfo.flightTime;

但这一次它给我的错误是:Cannot read property of 'flightTime' undefined

当我将这些命令包含在javascript中时,这些命令将引发错误。但是,如果我直接在控制台上运行第一个命令,则输出为:

>var departureInfo=digitalInfo.page.productInfo[0].flightTime;
>departureInfo;
<"Flight-1 06:50~Flight-1 08:35"

代码:

<script>

(function()
{
     'use strict';
      var cnt=6000;
      function init() 
      {
          if(typeof jQuery !="undefined")
          {         
            content_change();   
          }
          else
          {
              cnt=cnt-500;
              if(cnt>500)setTimeout(init,500);
          }
      }


function content_change()
{
  console.log("entered the content change function");

var departureInfo=digitalInfo.page.productInfo[0].flightTime;


    if(checking value of departureInfo)
    {       
console.log("Entered the if loop");
    }
    else
    {
       cnt=cnt-500;
          if(cnt>500)setTimeout(content_change,500);
    }   
 }
 init();
})()
</script>

1 个答案:

答案 0 :(得分:0)

我能够通过setTimeout函数解决此问题。谢谢大家的建议。