范围错误?无法读取未定义错误的属性'news_property'

问题描述:

我一直在寻找堆栈溢出,但似乎无法得到一个很好的答案,他们中的很多人似乎在说尝试&捕获,但我想知道如果它的一个范围错误范围错误?无法读取未定义错误的属性'news_property'

function updateNews() { 
    var news_all = $("#news_all"); 
    var news = data.news.content; 
    for (i = 0; i <= news.length; i++) { 
     var num = i + 1 
     var news = data.news.content; 
     var single = news[i]; 
     if (single.show_item == true) { 
      var news_new = '<div class="news-container">' news.title '</div>'; 
      news_all.append(news_new); 
     } 

    } 
} 

scripts.js中:94遗漏的类型错误:无法读取的不确定

我有一个JSON阵列工作性质“show_item”,并那里有一个叫“show_item”属性。

在此先感谢!

+0

什么是'data.News.content'?什么是'新闻'? “新闻”与“data.News”有什么不同?显然,data.News.content [i]没有定义为至少有一个值为'0 Phil

+0

更多问题...... 1)为什么在循环内重新分配'news'?您每次都将它设置为相同的值,这只是多余的。 2)你在'news_new'字符串中缺少连接运算符('+')。 3)鉴于'news'似乎是某种数组对象,你应该试图访问'news.title'还是它是'single.title'? – Phil

+0

我也相当肯定你的(编辑)问题中的代码不可能产生错误*“不能读取未定义的属性”show_item“* *,除非你的'data.news.content'数组包含'undefined'条目 – Phil

如果我不得不把你实际上是试图做的,并假定data.news.content什么是数组一个大的老猜测,它可能看起来像

$('#news_all').append(
    data.news.content 
    .filter(newsItem => typeof newsItem === 'object' && newsItem.show_item) 
    .map(newsItem => $('<div class="news-container"></div>').text(newsItem.title)) 
) 

有了这个,我过滤掉undefined条目,并有show_item设置为false项。

我然后将过滤后的集合映射到jQuery <div>对象的数组,并将其文本设置为相关标题。

这个对象集合然后被附加到#news_all元素。

欲了解更多信息,请参阅

+0

谢谢!成功了!像魅力一样工作 – Edward

当您应该迭代到news.length(案件事项)时,您正在迭代到News.length。这是造成你news[i]评估一个是undefined

function updateNews() { 
    var news_all = $("#news_all"); 
    var news = data.News.content; 
    for (var i = 0; i < news.length; i++) { 
    if (news[i].show_item == true) { 
     news_all.append('<div class="news-container">' news.title '</div>'); 
    } 
    } 
} 
+1

'我 Phil

+0

你真的不需要'var news = data.News.content'内循环 – Phil