1

こんにちは、私はこのような機能が欲しいです! http://i.stack.imgur.com/p61fq.png

最初の「選択タグ」を選択したとき

2番目の「選択タグ」は未定義を示します

しかし、この写真では、CONSOLE エリアはまさに私が望むものを示しています。

私の問題は... 2番目の「選択タグ」でデータを表示する方法は?

私の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. データはすでにあるので、 1 レベルの反復 [{"CityId":"4","CityName":"Vancouver"},{"CityId":"5","CityName":"Toronto"}]を使用するだけで済み、2 つの問題があります。$.eachdata.CiytName
  2. data は元のオブジェクトです (この繰り返しのオブジェクトではありません)
  3. CiytNameタイプミスがあります。

$.each ループの繰り返しに追加しないで、特に json にオプションとして追加する巨大なデータがある場合に、DOM 操作の数を減らすことをお勧めします。

      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 に答える