0

現在、jQueryAJAX関数を介してJSON値にアクセスする際に問題が発生しています。最初のアラートは正常に機能しますが、2番目の値が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

オブジェクトをjQueryに渡していますが、これは意味がありません。jQueryはDOM要素を操作するためのものです。それは「機能する」かもしれませんが、より良い使用法$.each() [docs]

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

デモ

于 2012-05-08T08:37:26.020 に答える
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 に答える