我有一个动态生成的选择女巫,它看起来像这样
<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','');
}
怎么做?
答案 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;
}
}
答案 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;