jQuery Ajax REST 中未定义的对象点表示法
jQuery Ajax object dot notation undefined from REST
大家好,我在理解为什么我的 for each 无法在我的 AJAX 成功函数中解析我的 REStful 终点时遇到了一个非常大的问题:
所以我有以下代码:
$.ajax({
dataType: "json",
url: '/showroom-event-gallery-api',
success: function(data) {
var rawData = data.slice(0,10);
console.log(rawData);
for (var i = 0, len = rawData.length; i < len; i++) {
var imageName = rawData.name;
console.log(imageName);
}
}
});
console.log(rawData);
语句成功运行并显示来自我的 REST api 的对象。我遇到的问题是,当我尝试对所有对象中的 select 一个名为 name
的参数使用点符号并将它们存储到变量中时。
当我 console.log(imageName);
我得到 undefined 但是名称参数在对象内部所以我不确定为什么会这样?
这是我的数据示例:
[
{
id:225,
car_image_category_id:37,
image_name:"DSC_9672",
name:"77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
path:"img/imagedb/77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
created_at:"2016-07-27 18:13:50",
updated_at:"2016-07-27 18:13:50"
},
{
id:226,
car_image_category_id:37,
image_name:"DSC_9673",
name:"af508985a53d7288d58cea118389a58b3567b364.jpg",
path:"img/imagedb/af508985a53d7288d58cea118389a58b3567b364.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-af508985a53d7288d58cea118389a58b3567b364.jpg",
created_at:"2016-07-27 18:13:50",
updated_at:"2016-07-27 18:13:50"
},
{
id:227,
car_image_category_id:37,
image_name:"DSC_9677",
name:"85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
path:"img/imagedb/85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
created_at:"2016-07-27 18:13:51",
updated_at:"2016-07-27 18:13:51"
}
]
如您所见,name
可以被 selected 但是当我使用点符号来执行此操作时,我的变量返回为未定义。
知道为什么会这样吗?
谢谢
应该是rawData[i].name
for (var i = 0, len = rawData.length; i < len; i++) {
var imageName = rawData[i].name;
console.log(imageName);
}
尝试替换
var imageName = rawData.name;
和
var imageName = rawData[i].name;
您现在正在尝试获取数组的名称而不是对象
$.each()
函数很容易与数组一起使用试试这个。
$.each(rawData, function( index, value ) {
console.log( index + ": " + value );
});
大家好,我在理解为什么我的 for each 无法在我的 AJAX 成功函数中解析我的 REStful 终点时遇到了一个非常大的问题:
所以我有以下代码:
$.ajax({
dataType: "json",
url: '/showroom-event-gallery-api',
success: function(data) {
var rawData = data.slice(0,10);
console.log(rawData);
for (var i = 0, len = rawData.length; i < len; i++) {
var imageName = rawData.name;
console.log(imageName);
}
}
});
console.log(rawData);
语句成功运行并显示来自我的 REST api 的对象。我遇到的问题是,当我尝试对所有对象中的 select 一个名为 name
的参数使用点符号并将它们存储到变量中时。
当我 console.log(imageName);
我得到 undefined 但是名称参数在对象内部所以我不确定为什么会这样?
这是我的数据示例:
[
{
id:225,
car_image_category_id:37,
image_name:"DSC_9672",
name:"77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
path:"img/imagedb/77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-77a3b8f84d63557d165f3b4ecf0d079e5cd1ae67.jpg",
created_at:"2016-07-27 18:13:50",
updated_at:"2016-07-27 18:13:50"
},
{
id:226,
car_image_category_id:37,
image_name:"DSC_9673",
name:"af508985a53d7288d58cea118389a58b3567b364.jpg",
path:"img/imagedb/af508985a53d7288d58cea118389a58b3567b364.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-af508985a53d7288d58cea118389a58b3567b364.jpg",
created_at:"2016-07-27 18:13:50",
updated_at:"2016-07-27 18:13:50"
},
{
id:227,
car_image_category_id:37,
image_name:"DSC_9677",
name:"85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
path:"img/imagedb/85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
thumbnail_path:"img/imagedb/thumbs/tn-85832b6a6d952873f2e277ca19b5eab826d63340.jpg",
created_at:"2016-07-27 18:13:51",
updated_at:"2016-07-27 18:13:51"
}
]
如您所见,name
可以被 selected 但是当我使用点符号来执行此操作时,我的变量返回为未定义。
知道为什么会这样吗?
谢谢
应该是rawData[i].name
for (var i = 0, len = rawData.length; i < len; i++) {
var imageName = rawData[i].name;
console.log(imageName);
}
尝试替换
var imageName = rawData.name;
和
var imageName = rawData[i].name;
您现在正在尝试获取数组的名称而不是对象
$.each()
函数很容易与数组一起使用试试这个。
$.each(rawData, function( index, value ) {
console.log( index + ": " + value );
});