0

我目前在通过 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"
    }
  }
}
4

2 回答 2

1
$(document).on('click', function () {
    $.ajax({
      url: '/js/formdata.js',
      dataType: 'json',
      success: function (data) {        
          alert(data.formdata.name.surname);
          alert(data.formdata.dateOfBirth2);
      }
    });
});​
于 2012-05-08T08:36:40.090 回答
1

您正在将一个对象传递给 jQuery,这没有任何意义。jQuery 用于处理DOM 元素尽管它可能“有效”,但最好使用$.each() [docs]

$.each(data, function () {
    alert(this.name.surname);
    alert(this.dateOfBirth2);
});

演示

于 2012-05-08T08:37:26.020 回答