2016-07-04 173 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