javascript 未定义数组时隐藏范围

cclgggtu  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(122)

我有一小段代码来检查Twitch stremer的状态。

$(document).ready(function () {
  // initialize user login and status variables
  var login = '';
  var twitchStatusLinks = $('.twitch-status');
  var twitchStatusResponse = $('.twitch-response');
  var user_name = getUrlParameter('user_name');

  // loop through each link
  twitchStatusLinks.each(function (index, value) {
    var twitchStatusLink = $(this);
    twitchStatusResponse.html('<span class="text"></span>');
    login = twitchStatusLink.attr('href').split('/');
    login = login[3]; // get username from link

    // check for parameter override - useful for iframe links
    if (user_name !== undefined) {
      login = user_name;
      twitchStatusLink.attr('href', 'https://twitch.tv/' + login);
    }

    // use ajax to call Twitch API
    $.ajax({
      type: 'GET',
      url: 'https://api.twitch.tv/helix/streams?user_login=' + login,
      headers: {
        "Client-ID": "REDACTED",
        "Authorization": "Bearer REDACTED"
      },
      success: function (data) {
        console.log(data);
        var status = ""; // default if data null
        if (data.data[0] != undefined) status = data.data[0]['type']; //TYPE contains the word 'live' when streamer online
        twitchStatusResponse.addClass(status);
        twitchStatusResponse.find('.text').text(status);
      }
    });
  });
});

// get parameter from url - https://stackoverflow.com/a/21903119/2510368
var getUrlParameter = function getUrlParameter(sParam) {
  var sPageURL = window.location.search.substring(1);
  var sURLVariables = sPageURL.split('&');
  var sParameterName;
  for (var i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');
    if (sParameterName[0] === sParam) {
      return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
    }
  }
};

这一切都工作得很好。但我坚持试图隐藏SPAN元素,如果数据数组是未定义的(当流光离线时,Twitch返回一个空数组)。

<span class="fa-layers-counter twitch-response" style="background:Tomato"></span>

我只想在定义数据数组时显示SPAN元素。我肯定不是Maven,到目前为止我还不能使它工作。有人能给我一些启示吗?

pepwfjgg

pepwfjgg1#

在 AJAX success函数中,您将检查数组的大小,并在需要时隐藏span:

if(data.data.length == 0) $('span.twitch-response').css('display', 'none')

相关问题