2016-07-04 88 views
1

如何動態選擇選項值?我曾嘗試相同的,選擇動態設置選項

function editFromDB(optVal) { 
    $.get("/myEnd", function(myData) {     
     var s = $('<select id="' + optVal + '" name="selectName" ></select>'); 
     $(myData).each(function(iter, element){ 
      $('<option></option>', { 
       value: elem.name, 
       text: elem.name 
      }).appendTo(s); 
     }); 
     $("#" + optVal).val(optVal); 
     // ... 
+0

'$( 「選項」)丙( 「選擇」,真)' – Mohammad

+1

使用了'optionVal',並在功能使用'optVal'。 – FrankerZ

+0

這是一個錯字..更新 – NaaN

回答

2

只需添加 「選擇:真正的」

$('<option></option>', { 
        value:"lol2", 
        text: "yo2", 
        selected : true 
       }).appendTo($("#test")); 

兩種方法來使用它:

$(myData).each(function(iter, element){ 
if (your_condition_for_selected) { 
      $('<option></option>', { 
       value: elem.name, 
       text: elem.name, 
       selected : true 
      }).appendTo(s); 
     }); 
} else { 
$('<option></option>', { 
       value: elem.name, 
       text: elem.name 
      }).appendTo(s); 
     }); 
} 

或者你可以做:

$(myData).each(function(iter, element){ 
if (your_condition_for_selected) { 
      $('<option></option>', { 
       value: elem.name, 
       text: elem.name, 
       selected : your_boolean_condition 
    }).appendTo(s); 
     }); 
} 
+0

是的,我只是想看到的方式來選擇。我編輯特定選定數據的答案 –

+0

'selected:true'幫助。 – NaaN

2

試試這個:

function editFromDB(optionVal){ 
    $.get("/myEnd",function(myData) {     
     var s = $('<select id="' + optVal + '" name="selectName" ></select>'); 
     $(myData).each(function(iter,element){ 
      var op = $('<option>'); 
      ... 
      if(elem.name == optVal) 
       op.attr('selected','selected'); 
      s.append(op); 

     }); 
     //$("#" + optVal).val(optVal); 
1

首先,您需要將您創建的select附加到DOM,然後才能對其設置val()

其次,您可以直接在s變量中使用您擁有的jQuery對象,而無需一起破解id選擇器。試試這個:

function editFromDB(optVal) { 
    $.get("/myEnd", function(myData) {     
     var $s = $('<select id="' + optVal + '" name="selectName" ></select>').appendTo('body'); // append here as needed 
     $.each(myData, function(i, element){ 
      $('<option></option>', { 
       value: elem.name, 
       text: elem.name 
      }).appendTo($s); 
     });  
     $s.val(optVal); 
    }); 
} 

Working example