我有一小段代码来检查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,到目前为止我还不能使它工作。有人能给我一些启示吗?
1条答案
按热度按时间pepwfjgg1#
在 AJAX success函数中,您将检查数组的大小,并在需要时隐藏span: