JQuery,无法读取属性长度

时间:2016-05-31 07:35:35

标签: jquery

这里我有一个简单的问题 在我的页面中:



handleSubmit

$(document).ready(function () {


    msg = "[{'CodiceProvincia' : '046','Provincia' : 'Lucca'}{'CodiceProvincia' : '108','Provincia' : 'Monza e della Brianza'}{'CodiceProvincia' :'109','Provincia' : 'Fermo'}{'CodiceProvincia' : '037','Provincia' : 'Bologna'}]";

    //  var msg = $.parseJSON(msgg);

    $("#ContentPlaceHolder1_ctl00_dlProvinciaResidenza").empty();

    var myDropDownList = $('#ContentPlaceHolder1_ctl00_dlProvinciaResidenza');


    $.each(msg, function (i, item) {
        alert(item.CodiceProvincia);
    });
  
    $.each(jQuery.parseJSON(msg), function () {
        myDropDownList.append($("<option></option>").val(this['CodiceProvincia']).html(this['Provincia']));
    });



});
&#13;
&#13;
&#13;

我正在使用jquery在我的下拉列表中加载城市,但我无法修复错误

  

:&#34;无法读取属性长度&#34;

在这个示例页面中我使用了一个名为msg的简单变量和数据,但在我的真实页面中我使用了webservice,这只是为了使问题更简单

我能做什么?

2 个答案:

答案 0 :(得分:0)

问题可能出在您的web服务中,因为您提供的json示例已损坏。看到它在这里工作:

&#13;
&#13;
$(document).ready(function() {
  var msg = $.parseJSON('[{"CodiceProvincia": "046","Provincia" : "Lucca"},{"CodiceProvincia" : "108","Provincia" : "Monza e della Brianza"},{"CodiceProvincia" :"109","Provincia" : "Fermo"},{"CodiceProvincia" : "037","Provincia" : "Bologna"}]');

  var myDropDownList = $('#ContentPlaceHolder1_ctl00_dlProvinciaResidenza');
  myDropDownList.empty();


  $.each(msg, function(i, item) {
    myDropDownList.append($("<option></option>").val(this['CodiceProvincia']).html(this['Provincia']));
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="Span1">provincia</span>
<select name="ctl00$ContentPlaceHolder1$ctl00$dlProvinciaResidenza" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$ContentPlaceHolder1$ctl00$dlProvinciaResidenza\&#39;,\&#39;\&#39;)&#39;, 0)" id="ContentPlaceHolder1_ctl00_dlProvinciaResidenza"
tabindex="5" class="form-control input-sm"></select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

  1. 你的json状态不佳。
  2. 你需要在元素和双引号之间使用昏迷

    例如:

      

    [{“CodiceProvincia”:“046”,“Provincia”:“Lucca”},{“CodiceProvincia”:“108”,“Provincia”:“Monza e della Brianza”},...

    2

      

    :“无法读取属性长度”

    是第一个foreach的原因。

     $.each(msg, function (i, item) {
            alert(item.CodiceProvincia);
        });
    

    此时“msg”是一个字符串,foreach是不可能的 您需要将“msg”变量转换为json对象

    $.each(jQuery.parseJSON(msg), function (i, item) {
            alert(item.CodiceProvincia);
        });