>我有一个动态生成的选择女巫,看起来像这样
<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;