Обновите глобальную переменную после того, как документ будет готов, и используйте эту переменную для изменения HTML с помощью Jquery. - PullRequest
0 голосов
/ 13 мая 2018

У меня очень простой код, но я не знаю, что я делаю здесь неправильно.Я также немного новичок в программировании и пытаюсь улучшить себя с помощью упражнений.

Сначала я создал пустую строковую переменную city и обновляю ее информацией о городе, полученной из API.После того, как переменная обновлена, я хочу использовать эту переменную в качестве входных данных в другом API, чтобы узнать погоду этого города.

Однако я пытаюсь увидеть, действительно ли переменная обновляется после API местоположения, но не смогла управлять этим?Можете ли вы, ребята, помочь мне в этом

var city = "";

$.get("https://api.ipdata.co", function (response) {
    city = $("#city").html(response.city + ", " + response.region);
}, "jsonp");

$(document).ready(function() {
  $("#trial").html(city);
});
body {
    background-color: #000000;
    color: white;
    text-align: center;
}

.title {

    font-size: 66px;
    margin-top: 5px;
    font-weight: 500;
}

#city {
    font-size: 33px;
}

#trial {
    color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
        <h1 class="title">
            Weather App
        </h1>
        <div id="city"></div>
        <h1 id="trial">yy</h1>
    </div>

1 Ответ

0 голосов
/ 13 мая 2018

.html() возвращает объект jQuery, поэтому ваша переменная city будет объектом jquery, а не строкой, которую вы ожидали. Если вы присвоите значения ответа переменной, то она будет установлена.

let city = ''

$(document).ready(function() {
    $.get("https://api.ipdata.co", function (response) {
        city = response.city + ", " + response.region;
        $("#city").html(city);
        console.log(city);
        $("#trial").html(city);
    }, "jsonp");
});

То, что вы делаете, запускает ваш ajax, который может завершиться или не завершиться до того, как будет запущен .ready(). вам нужно подождать, пока ajax завершится и обратный вызов будет запущен, прежде чем вы сможете проверить город.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...