错误遍历JavaScript中的列表列表

时间:2019-05-06 17:38:30

标签: javascript jquery asp.net-mvc model-view-controller

我正在使用Ajax从控制器返回一个模型,该模型设置为toArray以便处理数据。但是,这个列表有2个对象,在每个对象中,一个作业可以包含图片列表。我可以遍历该对象,但是当我遍历该对象中具有属性名称的列表时,该名称表示该名称不存在,在我的情况下,我很确定它存在。

posts.FindJobs.JobPictures是一个列表,每个索引中都有一些字节。 enter image description here This is the error img that I get in DOM

这是我的代码。

  $.each(posts.FindJobs, function (i, posts) {


                console.log(posts);
                $(".job-container").append(`


                        <li class="separate-job" id="All-Jobs-Id" value="` + posts.jobId + `">
                            <div class="content-li-All-Jobs">
                                <h2 class="content-li-All-headline" id="headline-for-Update">`+ posts.Headline + `</h2>
                                <a class="btn btn-success bid-for-job" value="`+ posts.jobId + `" href="#">Bid now</a>
                                <div class="user">
                                    <blockquote class="blockquote">
                                        <p class="mb-0">
                                            <div class="about-job">`+ posts.About + `</div>
                                        </p>
                                        <div class="blockquote-footer">
                                            <cite>-`+ posts.Username + `</cite>
                                        </div>
                                    </blockquote>
                                </div>
                                <div class="pictures-li">
                                   `+$.each(posts.FindJobs.JobPictures, function (i, pictures) {
                                        console.log(pictures);
                                    })+`
                                </div>

                                <div class="job-date-li">
                                    Posted

                                </div>
                                <div class="-job-town">Area | <span class="city">`+posts.JobCity+`</span></div>
                            </div>
                        </li>



`)

            });

1 个答案:

答案 0 :(得分:1)

问题是您试图直接访问JobPictures上的FindJobs,而您需要遍历每个职位的JobPictures

建议不要使用posts这样的变量名,例如:

将您的外循环更改为

post

然后您可以使用以下方法遍历当前职位JobPictures:

$.each(posts.FindJobs, function (i, post) { // <-- use post as the inner variable

要澄清:

$.each(post.JobPictures, function (i, pictures) { // <--- JobPictures is on post 的调用将暗示以下结构:

posts.FindJobs.JobPictures

当您真正拥有:

{
  FindJobs: {
    JobPictures: [ ... ]
  }
}

{ FindJobs: [ // <-- this is an array your outer loop is going over { jobId: 1, JobPictures: [ ... ], ... } // <-- your job items have their own JobPictures array { jobId: 2, JobPictures: [ ... ], ... } ... ] } 会访问哪个