如何将选定的值分配给没有值的选项 - javascript

How to give selected value to option with no value - javascript

本文关键字:选项 javascript 分配      更新时间:2023-09-26

>我有一个动态生成的选择女巫,看起来像这样

    <select id="elem">
        <option value="3">value 1</option>
        <option value="6">value 2</option>
        <option value="18">value 3</option>
        <option>value 4</option>
    </select>

最后一个选项没有值。我正在尝试选择在加载页面时在第一个位置显示"值 4"选项,使用 javascript

这是我在javascript中尝试过的

    var elem = document.getElementById("elem"),
        selectedNode = elem.options[elem.selectedIndex];
    if ( selectedNode.value === "" ) {
        selectedNode.setAttribute('selected','');
    }

怎么做?

如果未指定value,则value为文本。您也可以使用 hasAttribute 来检查value

var select = document.getElementById("elem");
for (var i = 0; i < select.options.length; i++) {
    if (!select.options[i].hasAttribute('value')) {
        select.options[i].selected = true;
    }
}

演示:http://jsfiddle.net/tymeJV/682Ap/1/

几种方法可以做到这一点。 如果您需要先找到该选项,则代码如下所示。它正在寻找具有非数值的选项 - 不幸的是,如果您省略该值,该选项的文本将成为其值

var sel = document.getElementById("elem");
var index = 0;
for(var i = 0;i<sel.options.length;i++){
  if (isNaN(sel.options[i].value))
    index = i;
}

如果您知道索引,则可以将所选选项设置为

sel.selectedIndex = index;