我目前在通过jQuery AJAX函数访问JSON值方面遇到了一些麻烦。第一个警报工作正常,但我得到一个带有第二个值的“未定义”警报:this.dateOfBirth2。
似乎我只能访问存储在另一个对象中的值。很奇怪。知道如何以这种方式访问this.dateOfBirth2吗?
这是JS小提琴。它不起作用,但想象一下/js/formdata.js
是上面的<script>
代码。 http://jsfiddle.net/LMSmp/1/
JavaScript的:
$(document).on('click', function () {
$.ajax({
url: '/js/formdata.js',
dataType: 'json',
success: function (data) {
var formData = $(data.formdata);
formData.each(function () {
alert(this.name.surname);
alert(this.dateOfBirth2);
});
}
})
});
JSON:
{
"formdata": {
"name": {
"salutation": "Dhr",
"surname": "Jan",
"tussenvoegsel": "van",
"lastName": "Boden"
},
"dateOfBirth1": 1,
"dateOfBirth2": 3,
"dateOfBirth3": 2,
"nationality": "Nederland",
"address": {
"zipcode": "1234AF",
"houseNumber": 5,
"suffix": "",
"street": "Kerkstraat",
"living": "Amstelveen",
"country": "Nederland"
},
"contact": {
"homeTel": "0123-456789",
"mobileTel": "01-23456789",
"email":"me@mail.com"
}
}
}
答案 0 :(得分:1)
$(document).on('click', function () {
$.ajax({
url: '/js/formdata.js',
dataType: 'json',
success: function (data) {
alert(data.formdata.name.surname);
alert(data.formdata.dateOfBirth2);
}
});
});
答案 1 :(得分:1)
您正在将对象传递给jQuery,这没有意义。 jQuery用于处理 DOM元素。 Although it might "work",最好使用$.each()
[docs]:
$.each(data, function () {
alert(this.name.surname);
alert(this.dateOfBirth2);
});