如何将选定的值提供给没有值的选项 - javascript

时间:2013-09-27 14:26:05

标签: javascript

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

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

最后一个选项没有价值。我试图让select在页面加载时在第一个位置显示“value 4”选项,使用javascript

以下是我在javascript中尝试的内容

    var elem = document.getElementById("elem"),
        selectedNode = elem.options[elem.selectedIndex];

    if ( selectedNode.value === "" ) {
        selectedNode.setAttribute('selected','');
    }

怎么做?

2 个答案:

答案 0 :(得分:0)

如果未指定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/

答案 1 :(得分:0)

有几种方法可以做到。如果你需要先找到该选项,代码将是这样的。它正在寻找一个非数字值的选项 - 遗憾的是,如果省略该值,则该选项的文本将成为其值

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;