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元素中发生的更改来更改索引?
<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)