如何使用JS和onkeydown事件在<p>中切换文本

时间:2019-05-10 06:59:22

标签: javascript html

我有一些代码,但是它不起作用,可能是因为JS代码中的某些错误。我有一些英文文本,我想通过按下ENTER键将文本切换为另一种语言,

  1. 页面加载时默认为英语
  2. 按ENTER语言时,文字应在荷兰语上更改
  3. 再次按ENTER键时,西班牙的语言文本应更改
  4. 再次按Enter键回到英语时,它将循环播放

因此,每当我按ENTER键时,我都希望获得更改文本的结果

英语->荷兰语->西班牙->英语->荷兰语->西班牙等

我下面的破损代码:)

<p id="language">English</p>

function myFunction() {
  var demo = document.getElementById("language").value;

  switch(demo) {
    case "English":
      text = "Dutch";
    break;
    case "Dutch":
    text = "Spain";
    break;
    case "Spain":
    text = "English";
    break;
  }
  document.getElementById("language").innerHTML = text;
}

document.onkeydown = function () {
    if (window.event.keyCode == '13') {
        myFunction();
    }
}
document.getElementById("language").innerHTML = text;

2 个答案:

答案 0 :(得分:0)

您的text变量位于myFunction()中。 text变量的范围在myFunction()内,并且您可以在函数document.getElementById("language").innerHTML = text;

之外访问它

text外部声明myFunction变量,以使其可全局访问。

var text = "English";

function myFunction() {
    var demo = document.getElementById("language").innerHTML;

    switch(demo) {
        case "English":
        text = "Dutch";
        break;
        case "Dutch":
        text = "Spain";
        break;
        case "Spain":
        text = "English";
        break;
    };

    document.getElementById("language").innerHTML = text;
}

document.onkeydown = function () {
    if (window.event.keyCode == '13') {
        myFunction();
    }
}
document.getElementById("language").innerHTML = text;
<p id="language">English</p>

答案 1 :(得分:0)

您的代码中有一些错误。

  1. 您错过了在JS函数周围添加脚本标签的操作。
  2. 您错过了定义变量text的机会。
  3. 您在.value中使用了document.getElementById("language")。应该是.innerHTML

<p id="language">English</p>

<script>
var text;

function myFunction() {
  text = document.getElementById("language").innerHTML;

  switch (text) {
    case "English":
      text = "Dutch";
      break;
    case "Dutch":
      text = "Spain";
      break;
    case "Spain":
      text = "English";
      break;
  }
  document.getElementById("language").innerHTML = text;
}

document.onkeydown = function() {
  if (window.event.keyCode == '13') {
    myFunction();
  }
}

 </script>