首页 > 解决方案 > getElementById 到数组到函数来切换

问题描述

我正在尝试根据所选标题更改我的标题和横幅 BG。

function display() {

var gameSelected = ["game_dota2","game_clashroyale","game_csgo","game_fortnite","game_pubg",];
var mmgame = document.getElementById(gameSelected);

  switch (mmgame){
    case "Dota 2":
    var mmgame2 = "Dota 2";
    break;
    case "Clash Royale":
    var mmgame2 = "Clash Royale";
    break;
  }

这就是如何根据 onclick 事件获取选择什么游戏的想法。

我是初学者,不确定这是否是最好的处理方法,如果您有更好的建议,请告诉我。

现在下一个问题是找出将工作 var 实现到另一个 switch 语句的最佳方法,然后使用 .innerHTML 和 .src 将新标题和新 BG 图像推送到站点顶部

switch (mmgame2){
    case "Dota 2":
      var element = document.getElementById("wht");
      element.innerHTML = mmgame2;
      document.getElementById("whbg").src = dota2_bg;
    break;
    case "Clash Royale":
      var element = document.getElementById("wht");
      element.innerHTML = mmgame2;
      document.getElementById("whbg").src = clashroyale_bg;
    break;
    case "CS:GO":
      var element = document.getElementById("wht");
      element.innerHTML = mmgame2;
      document.getElementById("whbg").src = csgo_bg;
    break;
    case "Fortnite":
      var element = document.getElementById("wht");
      element.innerHTML = mmgame;
      document.getElementById("whbg").src = fornite_bg;
    break;
    case "PUB:G":
      var element = document.getElementById("wht");
      element.innerHTML = mmgame;
      document.getElementById("whbg").src = pubg_bg;
    break;
    default:
      var element = document.getElementById("wht");
      element.innerHTML = "Your Game Is Not Ready Now";
    break;
  } 

}

谢谢!

标签: javascripthtmlarraysswitch-statement

解决方案


我通过简单地为每个游戏创建一个 .js 文件来解决它。

这也将有助于扩展它,因为每个游戏将包含更多的 js 代码,而不仅仅是点击和更改功能。

以下是将为每个游戏实施的更改的代码示例:

function display_dota2(){
  var element = document.getElementById("wht");
   element.innerHTML = "Dota 2"; //set title to game's title as specified above
  var dota2_bg = "../src/header_bg/dota2.png";
   document.getElementById("whbg").src = dota2_bg; //set background image
}

推荐阅读