在document.ready上调用JavaScript函数

时间:2017-12-20 23:47:12

标签: javascript jquery html typescript

我试图在文档加载完成后使用JavaScript设置HTML中段落元素的值,但它似乎无法正常工作。

从带有红色下划线的图片中,我已经指出:

1)我已经从谷歌的CDN中包含了jQuery库。

2)我已经"链接" (不确定正确的词是什么)我的.ts文件与我的HTML文件。

3)我已经将段落元素的id设置为"填充"

<!DOCTYPE HTML>
<head>

    <link   rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">        <!-- Makes me host Bootstrap -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>        <!-- Not sure if I'll need this -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://use.fontawesome.com/4c5e04f914.js"></script>
    <script src="http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID={178e8d4180edebe4e2c02fcad75b72fd}"></script>
    <script src="../js/script.ts"></script>

</head>
<body>
    <div class="jumbotron text-center">
        <h1 id="filler">Weather Wizard</h1>
        <p>Finding your local weather!</p>
        <!-- Your current location is: -->
        <p id="currentCity"></p>
    </div>
</body>
</head>

在script.ts文件中,我有:

4)在document.ready回调函数

中调用了我的getLocation()方法

5)试图用id =&#34;填充&#34;设置元素的html。某事

$(document).ready(function () {
getLocation();

/**
 * called when the user clicks the "find weather" button
 * get the user's current location, shows an error if the browser does not support Geolocation
 */
function getLocation(): void {
    document.getElementById("filler").innerHTML = "is this showing up?";
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(locationSuccess, locationError);
    } else {
        showError("Your browser does not support Geolocation!");
    }
}

不幸的是,当我在浏览器中加载HTML文件时,带有id =&#34;填充&#34;的文本没有变为&#34;这是否显示?&#34;

我也尝试在repl.it上制作类似的东西,并且按预期工作。

https://repl.it/@jonathanwangg/test

我做错了什么/失踪了?

1 个答案:

答案 0 :(得分:0)

您的浏览器并不了解打字稿。它抱怨: void部分。您必须将文件编译为常规javascript或只编写javascript。删除: void,它应该有效

此外,您不应该将openweathcermap api加载为脚本src。您正在加载jQuery,这意味着您可以使用jQuery ajax函数进行API调用。