Javascript:检索在没有 JQuery 的情况下选择了哪个下拉菜单

Javascript: Retrieving which of a drop-down menu has been selected without JQuery?

本文关键字:选择 情况下 下拉菜单 JQuery 检索 Javascript      更新时间:2023-09-26

编辑: JSFiddle

我不知道如何处理这个问题。我不愿意使用不必要的 id 或类。

我有一个下拉菜单,其中包含用于更改单词在文本框上实时显示速度的选项。我试图通过getTextSpeed函数访问选择了哪个选项以及以毫秒为单位的值。

这用于runDisplay函数,该函数从输入文本中获取一组给定的单词并显示它们,一次一个单词,这些单词由getTextSpeed给出的毫秒量交错。

这似乎不起作用。 getTextSpeed似乎没有返回值,所以我猜setInterval()正在运行默认值。

我这样做不正确吗?据我了解,这应该有效。我正在尝试检索值,而不是文本,并且值是一个数字。控制台中没有错误消息,只是当我尝试在运行网页时更改速度选项时没有明显的变化。

<fieldset>
          <p>Speed</p>
            <select id="speed">
                <option value="300">200 wpm</option>
                <option value="200">300 wpm</option>
                <option value="171" selected="selected">350 wpm</option>
                <option value="150">400 wpm</option>
                <option value="133">450 wpm</option>
                <option value="120">500 wpm</option>
            </select>
      </fieldset>
function getTextSpeed() {
    var speeds = document.getElementById("speed");
    return speeds.options[speed.selectedIndex].value;
}
function start() {
  var text = document.getElementById("words").value;
  var list = text.split(/'s+/);
  runDisplay(list, "display")
} 
function runDisplay(data, id) {
        var reader = document.getElementById(id);
        var index = 0;
        var textSpeed = getTextSpeed();
        if (timer) {
            clearInterval(timer);
        }
        if (data.length) {
            timer = setInterval(function() {
            reader.innerHTML = data[index++];
            index = index % data.length;
          }, textSpeed);
        }
    }

你试过这种方式吗?

function getTextSpeed() {
    var speeds = document.getElementById("speed").value;
    return speeds;
}
相关文章: