javascript - 迭代嵌套 obj 属性并将其输出到 HTML

标签 javascript jquery json

如果 item.NestObj.textpropertyVal 不正确,我应该如何调用它们?

success: function(data){

                var html = "";
                $.each(data.mainOutterObj, function (index, item) {
                    html += "<ul>";
                    console.log(item);
                    //$.each(item.data, function (index1, item1) {
                        html += "<li class='id'>" + item.id + "</li>";
                        html += "<li class='title'>" + item.title + "</li>";
                        html += "<li class='cast'>" + item.cast.name + "</li>";                                                                                                                                                         
                        html += "<li class='genre'>" + item.genre.type + "</li>";                                                                                                                                   

                    //});
                    html += "</ul>";
                });

一旦我开始尝试访问内部或嵌套对象属性,它们就会报告未定义。例如,以下 2 个失败。 (输出为 [object Object])或未定义。大概是因为我没有以正确的方式访问它。基本上, Actor 和流派是 .mainOutterObj 中的嵌套对象,其中包含我想要的属性值以及诸如 .name.type 之类的字段。

html += "<li class='cast'>" + item.cast.name + "</li>";                                                                                                                                                         
html += "<li class='genre'>" + item.genre.type + "</li>";                                                                                                                                   

如何迭代并输出这些值,与外部 obj 属性值相同?

例如,这里是嵌套转换对象的响应,您会注意到 .name 存在。但是当item.cast.name这样写的时候,就报undefined。

enter image description here

最佳答案

您的cast是一个只有一个元素的数组。你应该:

html += "<li class='cast'>" + item.cast[0].name + "</li>";                                                                                                                                                         
html += "<li class='genre'>" + item.genre[0].type + "</li>";  

您必须先访问 cast 的第一个元素(元素 0),然后才能获取属性 name

关于javascript - 迭代嵌套 obj 属性并将其输出到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786202/

相关文章:

jquery - Gmap 3-如何使用Ajax Json请求标记+有点击事件?

jquery:删除前两个 child ?

php - React native http post 得到 Json Parse 错误 : Unrecognized token '<'

php - 如何使用 jQuery 计算输入字段的总成本?

javascript - Ember-data: "no model found"在那里

字符串的javascript比较

php - 如何将带有覆盖层的 HTML 输出放入 OwlCarousel 中

javascript - JQuery/Coffeescript unescape变量字符串

javascript - 使用函数清理我的 javascript

json - 使用 AJAX 调用从 Symfony2 Controller 返回 JSONP