首页 > 解决方案 > 无法使用 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

我修改了命令并将其设置为 (command second) :

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>

标签: javascript

解决方案


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


推荐阅读