我正在用Javascript做一个小项目,可让您单击美国地图上的某个区域,它会告诉您该区域的时区和当地时间。我还有一个下拉框,可让您手动选择时区。
我具有根据单击/选择的时区来更新本地时间的不同功能。例如。:
function localTimeAtz () {
var offset = 9;
var rawTime = utcTime - (3600000*offset);
var time = new Date(rawTime);
document.getElementById("timeZoneName").innerHTML = ("Alaska Standard Time");
document.getElementById("localTime").innerHTML = (" " + time.getHours() + ":" + time.getMinutes());
}
function localTimeHtz () {
var offset = 10;
var rawTime = utcTime - (3600000*offset);
var time = new Date(rawTime);
document.getElementById("timeZoneName").innerHTML = ("Hawaii Standard Time");
document.getElementById("localTime").innerHTML = (" " + time.getHours() + ":" + time.getMinutes());
}
这是每个时区的选择框:
<select id="tzSelect">
<option value="localTimePtz">Pacific Time Zone</option>
<option value="localTimeMtz">Mountain Time Zone</option>
<option value="localTimeCtz">Central Time Zone</option>
<option value="localTimeEtz">Eastern Time Zone</option>
<option value="localTimeAtz">Alaskan Time Zone</option>
<option value="localTimeHtz">Hawaiian Time Zone</option>
</select>
我想在每次单击新时区时都触发相应的函数,因此每个选项的值都与相应函数的名称相同。
然后我尝试了这个:
var selectBox = document.getElementById("tzSelect");
selectBox.addEventListener("change", selectBox.selectedIndex.value);
基本上,我试图触发具有与所选值相同名称的函数。但是我无法正常工作。
知道如何检索选项的值并以与该值相同的名称触发函数吗?
最佳答案
尝试改变这个
selectBox.addEventListener("change", function(){
//do something
});
参考
addEventListener, "change" and option selection
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
关于javascript - Javascript-如何在事件监听器中使用<option>的值触发函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47566600/