success: function(d)
{
for (var o in d) {
alert(d[o]);
}
这是ajax的一部分,我想用"for"来获取里面的信息。
"img1":{"num":"1","src":"Img/House1/Image1.png",
"name":"Image1.png"},"img2":{"num":"2","src":"Img/House2/Image2.png",
"name":"Image2.png"},
如果我试图使用
获取数据alert(d[o].src);
它返回未定义,怎么可能我不能得到数据只是通过使用添加SRC ?
使用hasOwnProperty
并检查值:
d = JSON.parse(d);
for (var o in d) {
if (d.hasOwnProperty(o)) {
alert(d[o].src);
}
}
在大多数情况下,您可能会得到o
值为length
,等等。如果你确定它是一个数组而不是一个对象(也就是说,不是一个命名对象),你可以这样做:
for (i = 0; i < d.length; i++) {
alert(d[i].src);
}
var data = {
"img1": {
"num": "1",
"src": "Img/House1/Image1.png",
"name": "Image1.png"
},
"img2": {
"num": "2",
"src": "Img/House2/Image2.png",
"name": "Image2.png"
}
}
;(function (d) {
for (var o in d) {
if (d.hasOwnProperty(o)) {
alert(d[o].src);
}
}
})(data);
与for
:
var data = [
{
"num": "1",
"src": "Img/House1/Image1.png",
"name": "Image1.png"
},
{
"num": "2",
"src": "Img/House2/Image2.png",
"name": "Image2.png"
}
]
;(function (d) {
for (i = 0; i < d.length; i++) {
alert(d[i].src);
}
})(data);
当迭代确认对象具有该属性时,使用 hasOwnProperty()
方法,有关处理对象的更多信息,请访问https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
var d = {
"img1": {
"num": "1",
"src": "Img/House1/Image1.png",
"name": "Image1.png"
},
"img2": {
"num": "2",
"src": "Img/House2/Image2.png",
"name": "Image2.png"
}
}
for (var o in d) {
if (d.hasOwnProperty(o)) {
alert(d[o].src);
}
}
另一种可能的方法是使用 Object.keys()
和 forEach()
。 Object.keys()
将检索所有对象键作为一个数组,在遍历它们之后,然后检索使用键
的值var d = {
"img1": {
"num": "1",
"src": "Img/House1/Image1.png",
"name": "Image1.png"
},
"img2": {
"num": "2",
"src": "Img/House2/Image2.png",
"name": "Image2.png"
}
}
Object.keys(d).forEach(function(o) {
alert(d[o].src);
})
更新:也检查你添加了dataType:'json'
在你的ajax代码,或解析json数据在ajax成功回调使用d = JSON.parse(d)
或d = $.parseJSON(d)