JavaScript "example" 开关比较 HTML 按钮 id

JavaScript "example" of a switch to compare HTML button id's

我一周前发布了一个关于如何使用 JavaScript switch 语句来比较 this.id 的问题。我发现很难将我的 function/object 方法作为变量从开关中取出。使用严格模式并尝试这样做似乎是不可能的。但是我确实找到了一种方法来获得我想要的结果。

    "use strict"

    function fragmentLoader() {
      getID(this.id);
    }

    function getID(x) {
      var theID = x;

      switch (theID) {
        case "myFirstID":
          myDate();

          break;

        case "mySecondID":
          changeStyle();

          break;

        case "myThirdID":
          myText();

          break;

        default:
          otpt = "ERROR!";
      }

    }

    function myDate() {
      document.getElementById('content').innerHTML = Date();
    }

    function changeStyle() {
      
         var whatColor = document.getElementById("content").style.color;
      
      if ( whatColor === "black") {
        document.getElementById("content").style.color = "blue";
      } else {
        document.getElementById("content").style.color = "black";
      }

    }

    function myText() {
      document.getElementById('content').innerHTML = "This Text will display";
    }
    document.getElementById("content").style.color = "black";
    document.querySelector('#myFirstID').addEventListener('click', fragmentLoader);
    document.querySelector('#mySecondID').addEventListener('click', fragmentLoader);
    document.querySelector('#myThirdID').addEventListener('click', fragmentLoader);
    <div>
      <div>
        <button id="myFirstID">
          Press for Date and Time.
        </button>
      </div>

      <div>
        <button id="mySecondID">
          Press to change style color.
        </button>
      </div>

      <div>
        <button id="myThirdID">
          Press for Text.
        </button>
      </div>

      <p id="content">content here

      </p>
    </div>

不得不嘲笑我的示例,因为出于某种奇怪的原因,需要单击 2 次才能更改样式。关于为什么的任何想法?注意:“现在已修复”

除此之外,我希望这对其他人有所帮助。 -罗布

此行是您的代码无法按预期工作的原因:

document.getElementById("content").style.color === "black";

您尝试将颜色最初设置为黑色,但您习惯于使用许多“=”符号。将该行更改为:

document.getElementById("content").style.color = "black";

...您的代码将有效!