1

嗨,我想要这样的功能!http://i.stack.imgur.com/p61fq.png

当我选择第一个“选择标签”时

第二个“选择标签”显示未定义

但在这张图片中,CONSOLE 区域正是我想要的。

我的问题是......如何在第二个“选择标签”中显示数据?

我认为我的javascript有问题。

$.ajax({
    type: "POST",
      url: "dropdownServlet",
      data: dataString,
      dataType: "json",
      success: function( data, textStatus, jqXHR) {
          $("#dropdown2").html("");
            $.each(data, function(){
                $.each(this,function(){
                    $("#dropdown2").append("<option>"+data.CiytName+"</option>");   
                });
            });            
     },

这是我的 json 数据

[{"CityId":"4","CityName":"Vancouver"},{"CityId":"5","CityName":"Toronto"}]
4

1 回答 1

2

您需要做的就是:

    $.each(data, function(_, ob){
        $("#dropdown2").append("<option>"+ob.CityName+"</option>");   

   });    
  1. 由于您的数据已经是[{"CityId":"4","CityName":"Vancouver"},{"CityId":"5","CityName":"Toronto"}]您只需要使用一级$.each迭代并且 data.CiytName有两个问题,
  2. data 是原始对象(不是本次迭代的对象)
  3. CiytName有一个错字。

只是我的建议不要附加在 $.each 循环迭代中以减少 DOM 操作的数量,尤其是当您的 json 中有大量数据要作为选项附加时。

      var select = $('<select/>'); //Create a temp element.
        $.each(data, function(){
                select.append("<option>"+ob.CityName+"</option>");   //append to the temp element 
         });       

        $("#dropdown2").html(select.html());  //finally fill in the dropdown with your latest options.

参考$.each

于 2013-06-10T02:46:13.650 回答