我无法从我的 json 对象中检索数据;以下代码在控制台中返回 undefined for var r
但非常相似的代码(如下所示)在 JSFiddle 中有效。
var currentIMGArray = new Array();
$.ajax({
url:"foo.php",
type: "post",
data: {
action: "foo",
parameter: foo,
},
dataType: "json",
success: function (result) {
currentIMGArray = result[3];
console.log(currentIMGArray);
},
});
$(document).ready(function(){
$("#W").on("click", ".IMG", function() {
console.log("currentIMGArray: "+currentIMGArray.toString());
var IMGid = $(this).attr("id");
console.log("IMGid: "+IMGid);
var r = currentIMGArray.IMGid;
console.log("r: "+r);
})
})
这是控制台输出:
[Log] {imgGallery0: "1.jpg", imgGallery1: "2.jpg"}
[Log] currentIMGArray: [object Object]
[Log] IMGid: imgGallery0
[Log] r: undefined
但是这段代码在 JSfiddle 中有效,所以我很困惑区别在哪里?
var arr = {imgGallery0: "1.jpg", imgGallery1: "2.jpg"};
var b = arr.imgGallery1;
console.log(b)
最佳答案
使用 var r = currentIMGArray[IMGid];
而不是 var r = currentIMGArray.IMGid;
由于 IMGid 是一个变量并且可以更改其值,因此您需要使用数组样式方法访问内容 currentIMGArray[IMGid] 这意味着 currentIMGArray[IMGid] strong>IMGid 变量 imgGallery0,imgGallery1 从 currentIMGArray 对象中获取那个确切的键。想象一下,如果您有类似 {imgGallery0: "1.jpg", imgGallery1: "2.jpg", IMGid: '3.jpg'} 的内容,您将如何获得 3.jpg强>? currentIMGArray.IMGid 在这种情况下将返回 3.jpg
关于JavaScript 对象;访问 json 数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48152958/