我正在用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/

10-09 20:33
查看更多