我正在使用Javascript制作网页,并且想要实现一个按钮,以便每当单击它时,按钮内的文本都会变为下一个文本。

目前,我正在这样做(也是一个演示我的意思的演示):

CodePen.io

var textCount = 0;
function changeText() {
  var myText = document.getElementById("demo");
  switch (textCount) {
    case 0:{
      myText.innerHTML = "This is the second text";
      textCount++;
    }
    break;
    case 1: {
      myText.innerHTML = "This is the third text";
      textCount++;
    }
    break;
    case 2: {
      myText.innerHTML = "It keeps going on like this";
      textCount++;
    }
    break;
  }
}


基本上,我使用switch语句和计数器逐步进行操作。

我可以想到的另一种方法是通过拥有一个数组来保存所有文本,而我的函数将通过它(似乎更有效)




但是我仍然想知道是否还有其他方法(尽管很明显)可以使用纯Javascript实现。


提前致谢。

最佳答案

没错,可以使用数组使它更干净和更高效,例如:

let list = ['Message one', 'Message two', 'Message three', 'Message four'];

let counter = 0;

function clickHandler () {
    element.textContent = list[counter];
    counter = (counter + 1) % list.length; // If you want to loop messages, otherwise ++
}

08-15 18:33