Javascript 按值选择项

Javascript 按值选择项,javascript,html,option,Javascript,Html,Option,我有 我想要一个javascript函数,使我能够通过id选择并显示默认值。换句话说,我想要执行setOption5和,将值5作为默认值显示在组合框中 这可能吗?您甚至不需要javascript参与,只需使用所选属性: <select id="x"> <option value="5">hi</option> <option value="7">hi 2</option> </select> 如果可以,使用

我有

我想要一个javascript函数,使我能够通过id选择并显示默认值。换句话说,我想要执行setOption5和,将值5作为默认值显示在组合框中


这可能吗?

您甚至不需要javascript参与,只需使用所选属性:

<select id="x">
    <option value="5">hi</option>
    <option value="7">hi 2</option>
</select>

如果可以,使用ES6

<select id="x">
  <option value="5" selected>hi</option>
  <option value="7">hi 2</option>
</select>
……否则

function setOption(selectElement, value) {
    return [...selectElement.options].some((option, index) => {
        if (option.value == value) {
            selectElement.selectedIndex = index;
            return true;
        }
    });
}

如果返回false,则无法找到该值:

如果您使用的是jQuery 1.6或更高版本

function setOption(selectElement, value) {
    var options = selectElement.options;
    for (var i = 0, optionsLength = options.length; i < optionsLength; i++) {
        if (options[i].value == value) {
            selectElement.selectedIndex = i;
            return true;
        }
    }
    return false;
}

setOption(document.getElementById('my-select'), 'b');
使用Javascript:

$('#x option[value="5"]').prop('selected', true)

如果有人在寻找jquery解决方案,请使用val函数

document.getElementById('drpSelectSourceLibrary').value = 'Seven';
在Javascript中

$("#select").val(valueToBeSelected);

所以我遇到了这个问题,我想我应该提供一些解决方案

单选最简单的方法就是设置select的值:

document.getElementById("select").value = valueToBeSelected; 
您也可以按值获取所选选项,方法相同:

var mySelect = document.getElementById( 'my-select-id' );
mySelect.value = 7;
我想要的是一个更好的方法来设置多选的值。。。但事实证明,您似乎必须循环使用这些选项,并将它们设置为某种for循环:


演示:

您尝试了什么?您甚至不需要javascript。你有什么理由需要在客户端完成吗?@fifigyuri-为什么没有?我可以想出几个原因,这可能是有用的。顺便说一句,如果jQuery是一个选项,那么它就简单到$'x'.val'5'@Kobi显然有这样的原因,但如果没有,为什么不从解决方案中删除javascript呢?对于我来说,这个问题并不是很清楚,javascript真的有那么重要。参考本文:实际上,我要求javascript代码能够编辑选中的对象attrib@Ronan是 啊但这正是@fifigyuri要表达的观点:除非这是为了响应客户端的用户操作,否则没有理由使用JavaScript函数来实现这一点;iconsole.log( mySelect.value );
function setMultiSelectValues( select, values ) {
    for (var i = 0; i < select.options.length; i++) {
        var option = select.options[i];
        if ( values.includes( option.value ) ) {
            option.selected = true;
        }
    }
}
var mySelect = document.getElementById( 'my-select-id' );
var myValues = [ 'option-1', 'option-5' ];
setMultiSelect( mySelect , values );