javascript - 如何在事件监听器中使用 <option> 的值来触发函数

标签 javascript dom-events

我正在用 Javascript 制作一个小项目,它可以让您单击美国 map 上的某个区域,它会告诉您该区域的时区和本地时间。我还有一个下拉菜单 <select>允许您手动选择时区的框。

我有不同的功能,可以根据单击/选择的时区更新本地时间。例如:

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 - 如何在事件监听器中使用 <option> 的值来触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47566600/

相关文章:

javascript - GWT Chart.js 实现抛出 'unable to get property ' insertBefore' 未定义或空引用

javascript - 在 Backbone 应用程序中使用时焦点+上下文图中的解析错误

javascript - 网页上所有 id 标签均可进行鼠标操作

javascript - 按接收顺序处理 WebSockets 消息

javascript - 未捕获的语法错误 : Unexpected identifier in JavaScript class at Function declaration

Javascript Math.pow() 返回未捕获的类型错误 : Cannot read property '0' of undefined

javascript - 在移动设备上使用 mootools 拖动

javascript - 浏览器如何执行 Javascript 并异步呈现

javascript - 对象化还是对象化?

javascript - mouseover 和 mouseout 事件的奇怪行为