var model = {
cats: [
{
clickCount: 0,
name: "Panther",
imgUrl: "images/cat1.png"
},
{
clickCount: 0,
name: "Tiger",
imgUrl: "images/cat2.png"
},
{
clickCount: 0,
name: "Rocky",
imgUrl: "images/cat3.png"
},
{
clickCount: 0,
name: "Marshal",
imgUrl: "images/cat4.png"
},
{
clickCount: 0,
name: "Simpson",
imgUrl: "images/cat5.png"
},
{
clickCount: 0,
name: "Kajol",
imgUrl: "images/cat6.png"
}
]
};
catObject = {
name: document.getElementById('text-name').value,
url: document.getElementById('text-url').value,
count: document.getElementById('text-count').value
};
model是一个对象数组。我试图使用model.cats.push(catObject)添加另一个对象; 其中text-name,text-url,text-count是表单中文本框的ID。 我没有得到理想的结果。我发现只有catObject.name被推送到了model.cats而catObject.url和catObject.count没有被添加,因此未定义'是model.cats.imgUrl和model.cats.clickCount的值。 如果需要,我可以添加完整代码。我尝试过这样的事情......有人可以检查我是否遗漏了什么?提前谢谢。
答案 0 :(得分:0)
<强>校正强>
model
不是一个对象数组,而model
是一个包含属性(即cats
)的对象,它是一个对象数组。
你是对的
根据您的说明,您已使用catObject
cats
推送到model.cats.push(catObject);
出了什么问题
您可能已经使用loop
来访问cats
数组中的元素,并获得undefined
的{{1}}和model.cats.clickCount
只有你最后一个对象的model.cats.imgUrl
推送,因为您将catObject
的属性命名为url
和count
(即代替imgUrl
和clickCount
)。因此,只需将属性名称更改为imgUrl
和clickCount
即可解决问题。