2011-10-25 10 views
0

jqueryを使用してドロップダウンを動的に入力しています。正常に動作しますが、実行するたびにドロップダウンリストに追加され、ドロップダウンから以前の値は削除されません。私はdynamiccallyドロップダウンを移入するために使用していますドロップダウンがポピュレートされ、トリミングされていない

コードは次のとおりです。

$(document).ready(function() { 
       $("#diselc").change(function(){ 
        fillOptions('diselc','diselchild'); 
        }); 
      }); 
      function fillOptions(parentId,ddId) { 
       alert("atleast the call is being made in the fillOptions"+ddId); 
       var dd = $('#' + ddId); 
       alert("the value being passed is "+dd); 
       var jsonURL = '/docRuleTool/DataRetrival.do?disease_name='+ $('#' + parentId + ' :selected').val(); 
       $.getJSON(jsonURL, function(opts) 
       { 
       alert("just after calling the servlet stuff "); 
        $('>option', dd).remove(); // Clean old options first. 
        if (opts) { 
         $.each(opts, function(key, value) { 
          dd.append($('<option/>').val(key).text(value)); 
         }); 
        } else { 
         dd.append($('<option/>').text("Please select parent")); 
        } 
       }); 


      } 

答えて

0

jQueryのセレクタは古いオプションをクリアするために使用される構文エラーが含まれています。 をdd.empty()に置き換えてください。

+0

??? – bhalkian

0

あなたが持っているものshould workただし、以下のjQuery docs状態:

注:$( "> ELEMは"、コンテキスト)セレクタは、将来 のリリースで廃止されます。したがって、代わりの セレクタを使用する代わりに、その使用法は推奨されません。

私はemptyを既に他の回答に示されているように使用することをお勧めします。代わりに、すべての子要素optionを取得して削除することもできます。これはかなりあなたがすでに持っているものと同等ではなく、子セレクタの代わりにchildrenメソッドを使用している:それはどこかのオプション値をキャッシュ..does作業をdidnot

dd.children("option").remove(); 
+0

"dd.children(" option ")。remove(); "ドロップダウンで何も表示されません – bhalkian

関連する問題