我认为这里的问题是 JavaScript 的工作方式与 PHP 等预处理器完全不同。这里要理解的最重要的事情是每个<script>
块都是单独运行的,并且对它周围的 HTML 没有影响。
因此,当您将 JavaScript 和 HTML 混合在一起编写时(例如在您的示例中),它将按顺序执行以下操作:
- 设置空白页面 (
<body>
)
- 在里面运行 JavaScript
<script>
- 添加
<h3>
到页面(包括所有文本)
JavaScript 在第 2 步中所做的任何事情都不会改变第 3步。这些步骤都是完全独立的。您的if
语句是成功还是失败都没有关系 - 步骤#3 会以任何方式发生。
那么你应该怎么做呢?
一个好的开始模式(我认为)是将所有 JavaScript 放在页面底部。这样,只有两个步骤:
- 加载页面
- 运行 JavaScript
在第 1 步中加载页面后,JavaScript 可以在第 2 步中更改页面。例如:
<html>
<head>
<title>Demo page</title>
</head>
<body>
Today is a <span id="mood-result">???</span> day.
<script>
var resultElement = document.getElementById('mood-result');
var a = 1;
if (a === 2) {
resultElement.innerHTML = "bad";
} else {
resultElement.innerHTML = "good";
}
</script>
</body>
</html>
所以这里发生的是整个页面加载(说“今天是 ??? 天”),然后 JavaScript 立即从页面中提取一个元素,并更改它。
我认为 StackOverflow 不是一个尝试从头开始学习语言的好地方。但是,希望这将使您处于了解另一个指南的好地方。你试过CodeAcademy吗?