0

我是 HTML 和 JavaScript 的新手。我的 HTML 页面中有以下代码,但它没有给出预期的输出。

<body>
    <script>
    var a=1;
    if(a==2)
    </script>
    <h3>this is h3 heading.</h3>
</body>

输出是this is h3 heading,但我认为条件失败,因此它不会产生任何结果。我将如何让它运行?谁能告诉我,上面的 javascript 代码和 html 是如何工作的。我的确切疑问是,当一个 html 页面由 html 标签和 javascript 代码组成时,这些 html 标签和 js 代码是谁以及如何执行的?

4

3 回答 3

3

欢迎使用 Javascript - 这是您的代码!

<body>
    <h3 id="header"></h3>
    <script>
    var a = 1; //set a to 1
    if (a == 2) { //if a is 2 then...
        document.getElementById("header").innerHTML = "This is h3 Heading!"; //output
    }
    </script>
</body>

这是一个带有扩展代码的 JSFiddle,包括函数和点击事件。只需单击“结果”区域以增加a1 并获得结果! http://jsfiddle.net/neuroflux/8Lkax/1/

于 2013-10-18T12:22:09.630 回答
1

如果您想使用这样的条件,您应该考虑使用 PHP,或者您必须调整代码,可能的解决方案如下:

       <BODY>
             <div id="test">

             </div>
                <script>
                 var a=1;
                 if(a==2)
                 document.getElementById("test").innerHTML="<h3>this is h3 heading</h3>";
                </script>
                 </BODY>

如果脚本中的条件返回 true,那么您可以编辑带有 id 测试的标签的 innerHTML,即内容。您也可以使用 PHP 解决它,但既然您说您是 HTML 新手,您可能应该先尝试 JS 解决方案。

问候

于 2013-10-18T12:10:43.743 回答
0

我认为这里的问题是 JavaScript 的工作方式与 PHP 等预处理器完全不同。这里要理解的最重要的事情是每个<script>块都是单独运行的,并且对它周围的 HTML 没有影响。

因此,当您将 JavaScript 和 HTML 混合在一起编写时(例如在您的示例中),它将按顺序执行以下操作:

  1. 设置空白页面 ( <body>)
  2. 在里面运行 JavaScript<script>
  3. 添加<h3>到页面(包括所有文本)

JavaScript 在第 2 步中所做的任何事情都不会改变第 3步这些步骤都是完全独立的。您的if语句是成功还是失败都没有关系 - 步骤#3 会以任何方式发生。

那么你应该怎么做呢?

一个好的开始模式(我认为)是将所有 JavaScript 放在页面底部。这样,只有两个步骤:

  1. 加载页面
  2. 运行 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吗?

于 2013-10-18T13:30:19.070 回答