我正在使用Ajax从控制器返回一个模型,该模型设置为toArray以便处理数据。但是,这个列表有2个对象,在每个对象中,一个作业可以包含图片列表。我可以遍历该对象,但是当我遍历该对象中具有属性名称的列表时,该名称表示该名称不存在,在我的情况下,我很确定它存在。
posts.FindJobs.JobPictures是一个列表,每个索引中都有一些字节。
这是我的代码。
$.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>
`)
});
答案 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: [ ... ], ... }
...
]
}
会访问哪个