为什么答案是一样的

Why the same answer?

本文关键字:一样 答案 为什么      更新时间:2023-09-26

我是个初学者。

为什么这个脚本总是给出1作为答案?问题出在哪里?

无论选择哪个月,答案总是1。

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="button" value="?" onclick="alert(selectedMonth)"/>
<script>
var e = document.getElementById('monthSelect')
var i = e.selectedIndex;
var selectedMonth = e.options[i].value;
</script>  

问题出在onclick="alert(selectedMonth)"上;因为你没有调用任何函数,只是发出警报。我已经按照你解释的方式更正了你的代码。请检查以下解决方案。将您的按钮单击事件替换为下面提到的单击事件。

<input type="button" value="?" onclick="alert(selectedMonth())"/>

用下面的脚本替换你的脚本,你就会得到答案。

function selectedMonth(){
   var e = document.getElementById('monthSelect');
        var i = e.selectedIndex;
        return e.options[i].value; 
}

因为您的代码在侧面加载时运行,此时选择为1。

<input type="button" value="?" onclick="getSelection()"/>
function getSelection() {      
        var e = document.getElementById('monthSelect')
        var i = e.selectedIndex;
        alert(e.options[i].value); 
    }

您的代码很好:http://jsfiddle.net/vrwkpur7/

不使用函数的解决方案

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="button" value="?" onclick="alert(monthSelect.selecteIndex);"/>  

JsFiddle

具有功能的解决方案

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="button" value="?" onclick="getSelectedMonth();"/>
 <script>
 function getSelectedMonth()
 {
var e = document.getElementById('monthSelect')
var i = e.selectedIndex;
var selectedMonth = e.options[i].value;
     alert(selectedMonth);
 }
</scrip>