如何设置SELECT标记的默认选项以及如何获取所选选项的索引?

Top*_*per 5 html javascript indexing html-select

我想用HTML和JavaScript中的代码来处理SELECT和OPTION元素

<select>
    <option>
    </option>
    <option>
    </option>
</select>
Run Code Online (Sandbox Code Playgroud)

如何获取所选选项的索引,然后获取该索引的值?

如何使2010年成为用户在网页中表单中存在的选择标签中使用的默认选项?

我的代码如下所示:

<select id="SelectYear" name="SelectYear" size="1">  
    <script type="text/javascript">
        var startyear = "1950";
        var endyear   = "2020";
        for(var k=startyear; k<=endyear; k++ ) document.write("<option value="+k+">"+k+"</option>");
    </script>   
</select>
Run Code Online (Sandbox Code Playgroud)

我尝试了很多表达式来获取该索引,即使我知道它可能会给出不同的结果,例如:

var vIndex = document.getElementById('SelectYear').selectedIndex;    
var vIndex = document.getElementById('SelectYear').selectedIndex.value;    
var vIndex = document.getElementById('SelectYear').selectedIndex.text;  
var vIndex = document.getElementById('SelectYear').options[document.getElementById('SelectYear').selectedIndex];  
var vIndex = document.getElementById('SelectYear').options[document.getElementById('SelectYear').selectedIndex].value;  
var vIndex = document.getElementById('SelectYear').options[document.getElementById('SelectYear').selectedIndex].text;
Run Code Online (Sandbox Code Playgroud)

我的解决方法是将索引设置为静态,例如:

document.getElementById('SelectYear').selectedIndex = 60 ;
Run Code Online (Sandbox Code Playgroud)

但是,如果我不知道确切的索引还是根据数据库更新或手动编辑导致的SELECT元素中发生的更改来更改索引?

ajr*_*eal 2

<select id="SelectYear" name="SelectYear" size="1">
<script type="text/javascript">
var startyear = "1950";
var endyear   = "2020";
for(var k=startyear; k<=endyear; k++ ) 
{
  var selected = (k==2010) ? 'selected' : '';
  document.write("<option value='"+k+"'"+selected+">"+k+"</option>");
}
</script>
</select>
Run Code Online (Sandbox Code Playgroud)