2

ajax 成功関数で、vktemplateを使用していくつかの項目をドロップダウンに入れました。ただし、ユーザーがアドレスの名前を選択したときに、jquery データ オブジェクトからアドレス全体をすばやく取得できるように、いくつかのデータを添付したいと考えています。

これ

success: function (returnedData) {

    $('.vendor_address_select').vkTemplate('templates/vendor_addresses_by_sector_dropdown_template.tmpl?<?=time()?>', returnedData, function () {

        $.each(returnedData, function (key, val) {
            var id = val.id;

            //dropdown option looks like this:
            //<option id="vendor_address_id_22">company1</option>
            $('#vendor_address_id_' + id).data('address', {
                'vendorName': val.vendor_name,
                'address1': val.address1,
                'address2': val.address2,
                'city': val.city,
                'state': val.state,
                'zip': val.zip
            });

        });

    });
}

このエラーが発生しています Uncaught TypeError: Cannot call method 'split' of undefined

次のようにデータにアクセスしようとすると:

$(document).ready(function () {
    $('.vendor_address_select').change(function () {

        var selectedAddress = $('option:selected', this);
        console.log(selectedAddress.data());

    });
});

jquery をどのように悪用していdata()ますか?

テンプレート ファイル:

<% for ( var i = 0 in o ) { %>
<option id="vendor_address_id_<%=o[i].id%>">
<%=o[i].vendor_name%></option>
<% } %>
4

1 に答える 1

4

.data()like soを使用するときは、キー「アドレス」を指定する必要があります

$(document).ready(function () {
    $('.vendor_address_select').change(function () {

        var selectedAddress = $('option:selected', this);
        console.log(selectedAddress.data('address'));

    });
});
于 2012-11-08T21:47:33.500 に答える