【发布时间】:2019-06-17 05:07:00
【问题描述】:
首先,对不起我的英语不好,不是最好的;)
所以我是使用 JavaScript、Ajax 和 jQuery 的新手。从小我就对编码很感兴趣。我的一个朋友想要更新我不久前为他们制作的他们的网站。他们有一个小型播客/广播电台。
我要做的是在他们发布在 MixCloud 上的播客和他们的网站之间建立一个自动链接。我遵循了一些教程,并在这个网站上扔了表格,但我无法让脚本正常工作并从 MixCloud 使用他们的 API 制作的 JSON 文件中获取信息。
这是我到目前为止所得到的。我不知道我做错了什么,因为我对此非常陌生。我尝试了不同的方法,但这是我得到的最接近的方法。
const Http = new XMLHttpRequest();
const url = 'https://api.mixcloud.com/itmotr-radio/cloudcasts/';
Http.open("GET", url);
Http.send();
Http.onreadystatechange = (e) => {
console.log(Http.responseText)
}
function append_json(XMLHttpRequest) {
//Set Up the template
var s = $("#postTemplate")[0].innerHTML.trim();
var holder = document.createElement('div');
holder.innerHTML = s;
var template = holder.childNodes;
var episode = document.getElementById('episodes');
Object.keys(XMLHttpRequest).forEach(function(object) {
//Clone Template
var newEpisode = $(template).clone();
//Populate it
$(newEpisode).find(".data.name").html(object.episodetitle);
var img = $(newItem).find(".data.pictures.320wx320h")
$(img).attr("src", object.coverimg)
//Append it
$(".episodes").append(newEpisode);
});
}
$("document").ready(function() {
append_json(XMLHttpRequest);
});
.episodes {
background: white;
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(320px, 380px));
grid-auto-rows: 370px;
grid-auto-flow: dense;
justify-content: center;
padding-top: 10px;
}
.episode {
background: rgb(255, 255, 255);
border: 1px solid grey;
text-align: center;
}
.episodetitle {
font-size: 20px;
color: red
}
.coverimg {
width: 320px;
max-height: 320px
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="episodes">
<script type="text/template" id="postTemplate">
<div class="episode">
<img class="coverimg" src="">
<p class="episodetitle"></p>
</div>
</script>
</div>
由于某种原因,我无法从 JSON 文件中获取数据,并且它不会显示在 HTML 中。我在这篇文章的帮助下构建了这个脚本:Populate grid <div> & <p> with JSON data file
有人可以帮助我并让它与我一起工作吗? 需要读取的 JSON 文件是: https://api.mixcloud.com/itmotr-radio/cloudcasts/
【问题讨论】:
-
Object.keys(XMLHttpRequest).forEach毫无意义,您将异步调用视为同步调用 -
newItem未在您提供的代码中的任何位置声明。
标签: javascript jquery html css json