获取具有特定值的元素,将其选中

Ale*_*xio 0 html javascript jquery

我有一个带有这个禁用的select元素的表单(我用jquery禁用了它)

<select class="select form-control" id="ifacility" name="facility">
    <option value="" selected="selected">------</option>
    <option value="1">Room 1</option>
    <option value="2">Room 1</option>
    <option value="3">Room 2</option>
    <option value="4">Room 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想用它Jquery来找到一个带有名称的选项,Room 2并将其选中.

$(document).on('click', '.select-option', function() {
    var room = $(this).attr('value') //This is what gives the 'Room 2'
    //I want to select this room from the options and make it selected
});
Run Code Online (Sandbox Code Playgroud)

Som*_*Guy 7

你真的不需要jQuery,所以这里是一个简单的JavaScript解决方案.

声明这个功能:

function setOptionByValue(select, value){
    var options = select.options;
    for(var i = 0, len = options.length; i < len; i++){
        if(options[i].textContent === value){
            select.selectedIndex = i;
            return true; //Return so it breaks the loop and also lets you know if the function found an option by that value
        }
    }
    return false; //Just to let you know it didn't find any option with that value.
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

setOptionByValue(document.getElementById('ifacility'), 'Room 2');
Run Code Online (Sandbox Code Playgroud)

演示

  • "过度膨胀的javascript"= jQuery (5认同)
  • "过度膨胀的javascript"你甚至明白这句话有多么错误? (3认同)
  • @eg_dac提供的答案比使用jQuery所做的更小,更有效.它可能不是OP在一天结束时使用的,但它是有用的,正确的,并且可能教OP其他东西(更不用说在这里偶然发现的其他人). (2认同)