問題

我正在使用jQuery.我在cookie中設定了值,我想選擇一個下拉列表值.這是我的HTML程式碼

  <select id="usrole" class="form-control usrole txtboxdesign" >
                    <option>Select Role</option>
                </select>
 

這是我使用jQuery axios填充dropdownvalue的程式碼.

 function GetAllRole() {
alert('Role Value');
axios.get(all_RoleList + '/GetAll', authToken).then(function (result) {
    console.log(result);
    let select = document.getElementById('usrole');
    for (let i = 0; i < result.data.resultSet.length; i++) {

        var optname = result.data.resultSet[i].roleName;
        var optid = result.data.resultSet[i].id;
        var el = document.createElement("option");
        el.textContent = optname;
        el.value = optid;
        select.appendChild(el);

    }
});
}
 

我有控制檯cookie值,我得到了值.但我無法設定選擇下拉值.這是我的程式碼

 var roleid = $.cookie("roleid");
$('#usrole option[value="' + roleid + '"]').attr('selected', 'selected');
 

這段程式碼不起作用.

  最佳答案

為什麼不使用.val()

 var roleid = $.cookie("roleid");
$('#usrole').val(roleid);
 

這將做我認為的工作

 var dropdowns = [
    {'Id': 1, 'value': 'Blackberry'},
    {'Id': 2, 'value': 'Nokia'},
    {'Id': 3, 'value': 'Xiomi'}
];

function GetAllRole() {
    let select = document.getElementById('usrole');
    for (let i = 0; i < dropdowns.length; i++) {

        var optname = dropdowns[i].value;
        var optid = dropdowns[i].Id;
        var el = document.createElement("option");
        el.textContent = optname;
        el.value = optid;
        select.appendChild(el);
    }
}

GetAllRole();
var roleid = 3;
$('#usrole').val(roleid); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="usrole" class="form-control usrole txtboxdesign" >
                    <option>Select Role</option>
                </select> 

  相同標籤的其他問題

javascriptjqueryhtml