在HTML中包含JavaScript文件不会像<script ... =“”>一样工作

时间:2016-06-21 16:21:05

标签: javascript html html5

我在文件夹中有两个文件:

&#xA;&#xA;
    &#xA;
  1. main.html
  2. &#XA;
  3. main.js
  4. &#XA; &#XA;&#XA;

    main.js 如下:

    &#xA;&#xA;
      function revertNum(num){&#xA; var strNum = new String(num);&#xA; var strArr = strNum.split();&#xA; var result ='';&#xA; for(var i = strArr.length  -  1; i&gt; 0; i  - ){&#xA;结果+ = strArr [i];&#xA; }&#XA;返回结果;&#xA;}&#xA; var x = revertNum(32132);&#xA; console.log(x);&#xA;  
    &#xA;&#xA ;

    main.html 如下:

    &#xA;&#xA;
     &lt; html&gt;&#xA ; &LT; HEAD&GT;&#XA; &lt; meta charset =“utf-8”/&gt;&#xA; &lt; script src =“main.js”&gt;&lt; / script&gt;&#xA; &LT; /头&GT;&#XA; &LT;身体GT;&#XA; &lt; / body&gt;&#xA;&lt; / html&gt;&#xA;  
    &#xA;&#xA;

    我预计浏览器的控制台会反向显示 < em> 32132 ,但它只显示main.js文件的SRC。

    &#xA;&#xA;

    这是输出&#xA;

    &#XA;

2 个答案:

答案 0 :(得分:6)

您实际上并未在结果中添加任何内容。您正在记录一行,但它是一个空字符串。

那就是说...试试这个来反转main.js里面的一个字符串。它简单得多,减轻了所有代码的功能。

&#13;
&#13;
<?php $counter = null;?>
    <?php
        $code1 = "SELECT * FROM tableq";
        $query1 = $conn->query($code1) or trigger_error($conn->error.[$code1]);

        echo ("
            <table>
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Field ID</th>
                    <th>Info</th>
                </tr>
        ");

        if($query1->num_rows > 0){
            while($row1 = $query1->fetch_assoc()){
                echo ("
                    <tr>
                        <td>".$row1['id']."</td>
                ");

                if($counter == ""){
                    $counter = "1";
                }
                else if($counter == "4"){
                    $counter = $counter / 2;
                }

                $code2 = "SELECT * FROM tableq WHERE name='" . $row1['name'] . "' AND fieldid='" . $row1['fieldid'] . "'";
                $query2 = $conn->query($code2) or trigger_error($conn->error.[$code2]);

                if($query2->num_rows > 0){
                    echo ("
                            <td rowspan=\"".$counter."\">".$row1['name']."</td>
                    ");
                }

                echo ("
                        <td>".$row1['fieldid']."</td>
                        <td>".$row1['info']."
                ");

                if($query2->num_rows > 0){
                    while($row2 = $query2->fetch_assoc()){
                        $counter += 1;
                        echo ("
                                <br>".$row2['info2']."
                        ");
                    }
                }else{
                    die("No results found");
                }
                echo ("
                        </td>
                    </tr>
                ");
            }
        }
    ?>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

您的代码中有两个错误:

  1. 您的拆分行应以""作为分隔符:var strArr = str.split("");

  2. 您的循环条件应为i >= 0,而不是i > 0

  3. 您在控制台输出中只看到一个空白,因为第一个错误意味着strArr是一个只包含一个元素的数组:"32132",第二个错误意味着您在处理前停止数组中的最后一个(唯一)元素并返回""

    将来,您可以使用浏览器内置的调试器自行查找:

    1. debugger;的顶部添加main.js - 稍后,当您对这些工具更熟悉时,您不会需要这样做,但对于现在,它是让您进入调试器的最简单方法

    2. 打开标签页

    3. 使用菜单打开您的&#34;开发人员工具&#34; (它在大多数浏览器上都是F12或Ctrl + Shift + I或Cmd + Shift + I)现在我看到你正在使用Firefox,从它的Web Developer&gt;菜单开始。调试器(Ctrl + Shift + S,虽然Ctrl + Shift + I用于打开开发工具,然后只需单击调试器选项卡)。

    4. 打开您的页面。这应该会让你转向&#34;来源&#34;或&#34;来源&#34;或&#34;调试器&#34;开发人员工具中的选项卡,其中包含您的源代码。 (它是&#34;调试器&#34;在Firefox的内置工具中。)

    5. 使用那里的各种工具逐步执行代码语句,查看变量的值等。

    6. 您希望找到适用于您的浏览器工具的开发者工具网站,以了解如何使用它们。 This question and its answers有很多有用的链接。 Firefox的内置工具涵盖here