Как сказать JS только заменить HTML, если запрос API дал строку? - PullRequest
1 голос
/ 02 октября 2019

Я хочу, чтобы JS заполнял мой диапазон, только если API дал фактическую строку для обоих полей. Если это не так, я хочу, чтобы отображать значение по умолчанию только в одном поле. Значением по умолчанию является «Германия».

Вот мой код:

$(document).ready(function () {
  $.get("https://api.ipdata.co?api-key=[APIKEY]", function (response) { 
    city = response.city;
    country_name = response.country_name;
    $("#city").html(city);
    $("#country_name").replaceWith(country_name);
  }, "jsonp"); 
});
<span id="city"></span>
<span id="country_name">Germany</span>

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Если вы хотите заполнить оба поля, только если оба поля возвращены из запроса ajax, вы можете просто заключить их в оператор if:

$.get("https://api.ipdata.co?api-key=[APIKEY]", (response) => {

 if(response.city && response.country_name){
  // same code here
 }

});
0 голосов
/ 02 октября 2019

Во-первых, вы должны использовать text(), а не replaceWith(), чтобы установить innerText div. Во-вторых, вы можете использовать || для приведения значения, если оно undefined, null, пустая строка или любое другое ложное значение. Попробуйте это:

$("#city").text(city || '');
$("#country_name").text(country_name || 'Germany');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...