- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 .getJSON 从 Twitch API 获取 display_name。当用户帐户被停用(422)或不存在(404)时,display_name 键不存在并返回未定义。我尝试通过仅使用我迭代的列表(streamerList)中的名称作为变量名称来解决它。
var streamerList = ["freecodecamp", "storbeck", "terakilobyte", "habathcx", "RobotCaleb", "thomasballinger", "noobs2ninjas", "beohoff", "rocketbeanstv", "diehahn","myleschuahiock","brunofin","comster404"];
for (var x = 0; x < streamerList.length; x++) {
var name = streamerList[x];
$.getJSON("https://api.twitch.tv/kraken/channels/" + streamerList[x] + "/?callback=?", function (json) {
当 display_name !== null 时,我要求 for 循环将声明的变量、名称更改为显示名称
name = json.display_name;
但不知何故它仍然不起作用?有人能告诉我为什么会这样吗? (因为我还在起步)并提供解决方案?
完整的示例位于: http://codepen.io/myleschuahiock/pen/oxbGGj
JSLint 还告诉我不要在 for 循环内执行函数。这会是问题所在吗?
最佳答案
您正在检查 display_name
是否为空。您应该检查未定义
。
这是更改 -
if (json.display_name !== undefined) {
name = json.display_name;
}
$(document).ready(function() {
var streamerList = ["freecodecamp", "storbeck", "terakilobyte", "habathcx", "RobotCaleb", "thomasballinger", "noobs2ninjas", "beohoff", "rocketbeanstv", "diehahn","myleschuahiock","brunofin","comster404"];
for (var x = 0; x < streamerList.length; x++) {
var name = streamerList[x];
$.getJSON("https://api.twitch.tv/kraken/channels/" + streamerList[x] + "/?callback=?", function (json) {
var logo = json.logo;
if (json.display_name !== undefined) {
name = json.display_name;
}
var game = json.game; //categorical activity
var url = json.url; // url
var views = json.views; //int
var followers = json.followers; //int
var status = json.status; //null or on-going stream title
var profile = "http://www.twitch.tv/" + json.name + "/profile"; //url to profile
var profileHighlights = "http://www.twitch.tv/" + json.name + "/profile/highlights"; //url to video highlights
var profileChatRoom = "http://www.twitch.tv/" + json.name + "/chat"; //url to profilechatroom
// console.log(name + url + views + followers + status + profile + profileHighlights + profileChatRoom);
if (logo === null) {
logo = "https://myleschuahiock.files.wordpress.com/2016/03/no_user.gif";
}
//Adds the class offline to class="status-light" if the game === null (meaning the streamer isn't playing/offline)
var statusLight = "";
if (game === null && name !== null) {
game = "Offline";
status = "Offline";
statusLight = "offline";
} else if (status === 404) {
game = "Does not Exist";
status = "";
statusLight = "offline";
} else if (status == 422) {
game = "Account Deactivated";
status = "";
statusLight = "offline";
}
$(".tv-screen").append('<div class="streamer '+ name + '"><div class="col col-1"><img class="profile-logo" src="' + logo + '"></div><div class="col col-2"><h1 class="display-name"><a href="' + url + '" target="_blank">' + name + '</a></h1><p class="status">' + status + '</p></div><div class="col col-3"><div id="status-lightID" class="status-light '+ statusLight + '"></div><p class="status-game">'+ game +'</p><p class="view-count">' + views + ' views</p><p class="follower-count">' + followers + ' followers</p></div><div class="col col-4"><p><a href="' + profile + '" target="_blank">Profile</a></p><p><a href="' + profileHighlights + '" target="_blank">Hightlights</a></p><p><a href="' + profileChatRoom + '" target="_blank">Chat</a></p></div></div>');
});
}
});
@import url(https://fonts.googleapis.com/css?family=Fira+Mono:400,700);
body {
background-color: #9b53d2;
margin: 0;
padding: 0;
font-family: 'Fira Mono', sans-serif;
}
/* IMAGE SET 1 */
.image-set {
position: relative;
background-color: blue;
margin: 0 auto;
width: 1200px;
height: 1px;
}
.logo {
width: 270px;
height: 93px;
position: relative;
top: 50px;
left: 40%;
}
.decor {
position: absolute;
}
/* If you want the img to follow the horizontal screen-scrolling, you have to set it absoulte to a div that is relative! */
/* This is required if you want the images to 'ride' along with the horizontal screen overflow */
.vader {
width: 110px;
height: 220px;
top: 121px;
left: 108px;
}
.capcom {
width: 171px;
z-index: -1;
height: 171px;
top: 185px;
left: 215px;
}
.joker {
width: 65px;
height: 90px;
top: 230px;
left: 385px;
}
.superman {
width: 108px;
height: 102px;
top: 55px;
left: 350px;
}
.fett {
width: 85px;
height: 116px;
top: 210px;
left: 470px;
}
.batman-robin {
width: 220px;
height: 107px;
top: 215px;
left: 570px;
}
.ironman {
width: 88px;
height: 119px;
top: 45px;
left: 770px;
}
.campbells {
width: 140px;
height: 180px;
top: 150px;
left: 840px;
}
.mario-peach {
width: 256px;
height: 256px;
top: 100px;
left: 960px;
}
/* IMAGE SET 2 */
.image-set-2 {
position: relative;
width: 1200px;
/* height: 100px; */
margin: -180px auto 0 auto;
}
.daisy {
width: 124px;
height: 196px;
top: 110px;
right: -60px;
}
.burgers {
width: 165px;
height: auto;
top: 100px;
left: -60px;
}
.watermark-1 {
position: absolute;
top: 230px;
left: 40%;
color: white;
text-align: center;
}
.watermark-2 {
position: absolute;
top: 260px;
left: 42%;
font-size: 12px;
color: white;
text-align: center;
}
/* TWITCH SCREEN */
.tv-frame {
width: 1200px;
height: 1000px;
background-color: #7a41a5;
margin: 300px auto 0 auto;
padding-top: 19px;
}
.banner {
margin: 0 auto;
width: 1100px;
height: 55px;
background-color: #9b53d2;
box-shadow: 0 5px 15px #222;
}
.banner-tag {
color: white;
letter-spacing: 10px;
text-align: center;
vertical-align: middle;
padding-top: 10px;
}
.tv-screen {
width: 980px;
background-color: white;
height: 840px;
margin: 0 auto;
box-shadow: 0 5px 15px #222;
overflow: scroll;
}
/* STREAMER IN TV-SCREEN CSS */
.streamer {
width: 99.6%;
height: 150px;
border: 2px solid #7a41a5;
}
/* ALL COL STYLING */
.col {
height: 120px;
float: left;
/* background-color:red; */
}
/* COL-1 Styling */
.col-1 {
padding: 0;
margin: 0;
/* background-color: red; */
}
.profile-logo {
border-radius: 100%;
width: 85px;
height: 85px;
margin: 30px 0 0 100px ;
}
.col-2 {
width:270px;
margin-left:50px;
}
.display-name {
padding-top:20px;
font-size:22px;
}
.status {
font-size:16px;
margin:-10px 0 0 0;
}
.col-2 a {
color:black;
text-decoration:none;
}
.col-3 {
height:100px;
width:200px;
margin:30px 0 0 20px;
font-size:14px;
}
.col-3 p:nth-child(n+1) {
margin: 12px 0 0 0;
padding:0;
}
.status-light {
width:15px;
height:15px;
margin-right:10px;
background-color:#9b53d2;
border-radius:10px;
float:left;
}
.offline {
width:15px;
height:15px;
margin-right:10px;
background-color:grey;
border-radius:10px;
float:left;
}
.status-game {
display:inline;
}
.col-4 {
margin:23px 0 0 40px;
}
.col-4 p {
margin:0 0 0 0;
padding:0;
font-size:16px;
height:auto;
}
.col-4 p:nth-child(n+1) {
margin: 12px 0 0 0;
}
.col-4 a:link, .col-4 a:visited, .col-4 a:hover, .col-4 a:active {
color:black;
text-decoration:none;
}
.image-set-2 a {
color:white;
text-decoration:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="image-set">
<img class="decor logo" src="https://myleschuahiock.files.wordpress.com/2016/03/twitch-logo.png">
<img class="decor vader" src="https://myleschuahiock.files.wordpress.com/2016/03/darth-vader1.gif">
<img class="decor capcom" src="https://myleschuahiock.files.wordpress.com/2016/03/capcom-fight1.gif">
<img class="decor joker" src="https://myleschuahiock.files.wordpress.com/2016/03/joker1.gif">
<img class="decor superman" src="https://myleschuahiock.files.wordpress.com/2016/03/superman1.gif">
<img class="decor fett" src="https://myleschuahiock.files.wordpress.com/2016/03/fett1.gif">
<img class="decor batman-robin" src="https://myleschuahiock.files.wordpress.com/2016/03/batman-robin1.gif">
<img class="decor ironman" src="https://myleschuahiock.files.wordpress.com/2016/03/ironman1.gif">
<img class="decor campbells" src="https://myleschuahiock.files.wordpress.com/2016/03/campbells1.gif">
<img class="decor mario-peach" src="https://myleschuahiock.files.wordpress.com/2016/03/mario-peach1.gif">
</div>
<div class="tv-frame">
<div class="banner">
<h1 class="banner-tag">FAVORITE TWITCH TV STREAMERS</h1>
</div>
<div class="tv-screen">
<!-- STREAMER TEMPLATE SAMPLE -->
<!-- <div class="streamer">
<div class="col col-1"><img class="profile-logo" src="https://myleschuahiock.files.wordpress.com/2016/03/starcraft-logo.gif"></div>
<div class="col col-2">
<h1 class="display-name"><a href="#" target="_blank">StarCrayBoy3</a></h1>
<p class="status">Fighting zergs 1v5 hard mode insta-kill time.</p>
</div>
<div class="col col-3">
<div class="status-light"></div>
<p class="status-game">Star Craft II</p>
<p class="view-count">201,234</p>
<p class="follower-count">23,421</p>
</div>
<div class="col col-4">
<p><a href="#">Profile</a></p>
<p><a href="#">Hightlights</a></p>
<p><a href="#">Chat</a></p>
</div>
</div> -->
<!-- STREAMERS END HERE -->
</div>
<!-- TV SCREEN ENDS HERE -->
</div>
<div class="image-set-2">
<img class="decor burgers" src="https://myleschuahiock.files.wordpress.com/2016/03/burgers-cut.gif">
<p class="watermark-1"><a href="http://codepen.io/myleschuahiock/" target="_blank">codepen.io/myleschuahiock</a></p>
<p class="watermark-2"><a href="http://8bitdecals.com/8-bit-image-gallery/" target="_blank">Photos from 8bitdecals.com</a></p>
<img class="decor daisy" src="https://myleschuahiock.files.wordpress.com/2016/03/daisy.png">
</div>
关于javascript - 为什么将 .getJSON 中的名称声明为列表中的索引后仍未定义(JavaScript/JQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35954714/
这几天我一直在努力。我一直在自学 CSS,所以对菜鸟好一点。我正在创建一个推荐 slider 。推荐以 3 个 block 显示。我希望前 2 个下降,第 3 个上升。但是当 slider 激活时,无
我最近开始学习 Nodejs,现在我很困惑我的网络应用程序使用什么,html 还是 ejs (Express)。 Ejs 使用 Express 模块,而 .html 使用 HTML 模块。我的第一个问
假设我们有一个 PostgreSQL 表contacts,每条记录都有一堆带标签的电子邮件地址(标签和电子邮件对)——其中一个是“主要”。 存储方式如下: id 主键 电子邮件 文本 email_la
我成功为一种新的tesseract语言编写了traineddata文件,但是当我完成时,我继续收到以下错误: index >= 0 && index = 0 && 索引 < size_used_ :E
这个问题已经有答案了: How to deal with SettingWithCopyWarning in Pandas (21 个回答) 已关闭 4 年前。 假设我有一个像这样的数据框,第一列“密
如果我有一个位置或行/列同时用于 A 和 B 位置,请检查 B 是否与 A 成对角线? 1 2 3 4 5 6 7 8 9 例如,我如何检查 5 是否与 7 成对角线? 此外,如果我检查 4 是
MongoDB:索引 一、 创建索引 默认情况下,集合中的_id字段就是索引,我们可以通过getIndexes()方法来查看一个集合中的索引 > db.user.getIndexes() [ { "v
一、索引介绍 索引是一种用来快速查询数据的数据结构。 B+Tree就是一种常用的数据库索引数据结构,MongoDB采用B+Tree 做索引,索引创建在colletions上。 MongoDB不使用索引
我无法决定索引。 就像我有下面的查询需要太多时间来执行: select count(rn.NODE_ID) as Count, rnl.[ISO_COUNTRY_CODE] as Cou
我有这些表: CREATE TABLE `cstat` ( `id_cstat` bigint(20) NOT NULL, `lang_code` varchar(3) NOT NULL,
我正在尝试找到一种方法来提高包含 IP 范围的 mysql 表的性能(在高峰时段每秒最多有 500 个 SELECT 查询(!),所以我有点担心)。 我有一个这种结构的表: id smallint(
jquery index() 似乎无法识别元素之一,总是说“无法读取未定义的属性‘长度’”这是我的代码。mnumber 是导致问题的原因。我需要 number 和 mnumber 才能跟踪使用鼠标,并
我们有一个包含近 4000 万条记录的 MongoDB 集合。该集合的当前大小为 5GB。此集合中存储的数据包含以下字段: _id: "MongoDB id" userid: "user id" (i
文档说:如果你有多个字段的复合索引,你可以用它来查询字段的开始子集。所以如果你有一个索引一个,乙,丙你可以用它查询一种一个,乙a,b,c 我的问题是,如果我有一个像这样的复合索引一个,乙,丙我可以查询
我正在使用 $('#list option').each(function(){ //do stuff }); 循环列表中的选项。我想知道如何获取当前循环的索引? 因为我不想让 var i = 0;循
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL
SQLite 索引(Index) 索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索。简单地说,索引是一个指向表中数据的指针。一个数据库中的索引与一本书后边的索引是非常相似的。
我是 RavenDB 的新手。我正在尝试使用多 map 索引功能,但我不确定这是否是解决我的问题的最佳方法。所以我有三个文件:Unit、Car、People。 汽车文件看起来像这样: { Id: "
我有以下数据,我想根据范围在另一个表中建立索引 我想要实现的是,例如,如果三星的销售额为 2500,则折扣为 2%,低于 3000 且高于 1000 我知道它可以通过索引来完成,与多个数组匹配,然后指
我正在检查并删除 SQL 数据库中的重复和冗余索引。 所以如果我有两个相同的索引,我会删除。 例如,如果我删除了重叠的索引... 索引1:品牌、型号 指标二:品牌、型号、价格 我删除索引 1。 相同顺
我是一名优秀的程序员,十分优秀!