动态设置选择的选项

Dynamically set option selected

本文关键字:选项 选择 设置 动态      更新时间:2023-09-26

如何动态设置选中的选项值?我也试过了,

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);
        // ...

添加" selected: true"

    $('<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); 
        });
} 

试试这个:

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);

首先,您需要将您创建的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);
    });
}

工作示例