如何使用 .InnerHTML 方法放置特定的数组项

How do you place a specific array item using .InnerHTML method

好的,这是我 运行 关注的问题:我正在尝试创建一个基本数组来包含一周中每一天的菜单项,以显示在菜单板上。我一次只需要访问数组中的一项,并尝试使用 .innerHTML 方法将该项放入 HTML。但是,我 运行 遇到了一个问题,它不显示文本,除非我在我尝试访问的项目之前包含了数组项目。

我有 2 个 .js 文件与一个 HTML 文件协同工作。一个是菜单项的加载器,我有一个单独的数组 .js 文件,因为我希望将来任何人都可以轻松更新它,而不用担心他们会把代码弄乱。

例如:我尝试选择数组项“1”,但它不会显示,除非我在 HTML 中也将数组项“0”放在它前面。我会通过将 pizza2 编码为 HTML 中动态项的 ID 来表明我想要数组项“1”。本质上,如果不先有一个单独的 <p> 元素引用 pizza1,我就不能 select pizza2

我对 JS 比较陌生,所以我不确定此时应该做什么来解决问题。这是我的代码:

HTML:


link rel="stylesheet" href="pizza.css">
<link href="https://fonts.googleapis.com/css?family=Rye|Bitter&display=swap" rel="stylesheet">
<script
  src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
  integrity="sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8="
  crossorigin="anonymous"></script>

<!--Forces Cache Clear-->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

</head>

<body>

<!--Body-->
<section class="pizza_menu">
    <h1>Pizza</h1>
    <h1 style="line-height: 0.05em">Station</h1>
  <div class="items">
  <p>Cheese Pizza</p>
  <p>Pepperoni Pizza</p>
<!--Dynamic Menu Item-->
  <p id="pizza2"></p>
</div>
</section>

<!--Video Background-->
<section class="background">
  <video autoplay muted loop>
    <source src="https://corinthdesign.com/private/HTML_menuboards/media/pizza.mp4" type="video/mp4">
  </video>
</section>

  <script src="menus/pizzaMenu.js"></script>
  <script src="js/menuLoader.js"></script>
</body>

加载菜单的 js(包括 "console.log" 行以帮助确保它能够将 ID 与数组中的项目连接起来,它确实做到了):

//MONDAY
var a0 = menu[0]
//TUESDAY
var b1 = menu[1]
//WEDNESDAY
var c2 = menu[2]
//THURSDAY
var d3 = menu[3]
//FRIDAY
var e4 = menu[4]
//SATURDAY
var f5 = menu[5]
//SUNDAY
var g6 = menu[6]

$(document).ready(function menuLoader() {
  console.log(menu[0]);
  console.log(menu[1]);
  console.log(menu[2]);
  console.log(menu[3]);
  console.log(menu[4]);
  console.log(menu[5]);
  console.log(menu[6]);

/////////Below code places menu items///////////
//Monday
  document.getElementById("pizza1").innerHTML = a0;
  document.getElementById("pizza2").innerHTML = b1;
  document.getElementById("pizza3").innerHTML = c2;
  document.getElementById("pizza4").innerHTML = d3;
  document.getElementById("pizza5").innerHTML = e4;
  document.getElementById("pizza6").innerHTML = f5;
  document.getElementById("pizza7").innerHTML = g6;
});
    ```

最后是简单的js数组菜单文件:

var menu = [

//Monday Lunch and Dinner Special
  "Meat Lover's Pizza",
//Tuesday Lunch and Dinner Special
  "Grilled Vegetable Pizza",
//Wednesday Lunch and Dinner Special
  "Cheeseburger Pizza",
//Thursday Lunch and Dinner Special
  "Mac and Cheese Pizza",
//Friday Lunch and Dinner Special
  "Tandoori Chicken Pizza",
//Saturday Lunch and Dinner Special
  "Chicken Bruschetta Pizza",
//Sunday Lunch and Dinner Special
  "Sausage Pizza"

]

感谢您的帮助!

只需获取当天并使用它从提供的列表中查找适当的菜单:

var menu =
{ 
  "Monday" : "Meat Lover's Pizza",
  "Tuesday" : "Grilled Vegetable Pizza",
  "Wednesday" : "Cheeseburger Pizza",
  "Thursday" : "Mac and Cheese Pizza",
  "Friday" : "Tandoori Chicken Pizza",
  "Saturday" : "Chicken Bruschetta Pizza",
  "Sunday" : "Sausage Pizza"
};


var date = new Date();
var dayOfWeek = date.toLocaleDateString("en-gb", { weekday: 'long' });  

document.getElementById("pizzaOfTheDay").innerHTML = menu[dayOfWeek];
<!--Body-->
<section class="pizza_menu">
    <h1>Pizza</h1>
    <h1 style="line-height: 0.05em">Station</h1>
  <div class="items">
  <p>Cheese Pizza</p>
  <p>Pepperoni Pizza</p>
<!--Dynamic Menu Item-->
  <p id="pizzaOfTheDay"></p>
</div>
</section>

<!--Video Background-->
<section class="background">
  <video autoplay muted loop>
    <source src="https://corinthdesign.com/private/HTML_menuboards/media/pizza.mp4" type="video/mp4">
  </video>
</section>