2011-08-05 13 views
0

で選択リストを作成:私は、コードでこれまでのところ持っているスクリプト

success: function(data) { 
    $.each(data, function(item){ 
     if (item=="") { 
     $(select_element).append($(document.createElement("option")).attr("value", (item)).html(data[item])); 
     } else { 
     $(select_element).append($(document.createElement("option")).attr("value",(item)).html(data[item]+" ")); 
     } 

は、「アイテム」は二つの属性、説明およびIDを持つオブジェクトです。作成された選択リストは、基本的にfindだけで動作しますが、今はオブジェクト全体を返します。 idが返されるitemValueとdescription itemLabelになるようにcreateElement関数を変更できますか?私は初心者です。

答えて

0

itemオブジェクトのの説明によると、これはより良いアプローチのようになります。

$.each(data, function(idx,item) { 
    if (!item.id) { 
     $(select_element).append($("<option>").attr("value",item.id).html(item.description)); 
    } else { 
     $(select_element).append($("<option>").attr("value",item.id).html(item.description+" ")); 
    } 
}); 
0

私はあなたの質問、dataを理解するように、このようになります:

[ 
    {id: 0, description: "label for id 0"}, 
    {id: 1, description: "label for id 1"}, 
    {id: 2, description: "label for id 2"}, 
] 

その後、次の行は、あなたが欲しいものを行う必要があります。私はあなたが次の行に何かを試すことができると思い

$.each(data, function(item){ 
    if(item.description == "") { 
    $(select_element).append($('<option value="' + item.id + '">' + item.description + '</option>'); 
    } 
    else { 
    $(select_element).append($('<option value="' + item.id + '">' + item.description + '</option>'); 
    } 
} 
0

success: function(data) { 
    $.each(data, function(item){ 
     if (item=="") { 
     $(select_element).append("<option value='-1'>Empty</option>"); 
     } else { 
     $(select_element).append("<option value='" + item.id + "'>" + item.description +"</option>"); 
     } 

あなたが探している機能がわかりません項目は= ""

0

てみてください:

success: function(data) { 
     $.each(data, function(item){ 
      if (item=="") { 
       $(select_element).append('<option value="">--select--</option>'); 
      } else { 
       $(select_element).append('<option value="' + item.id +'">' + item.description + '</option>'); 
      } 
     } 
    } 
関連する問題