Javascript SoundCloudAPI只返回列表中的最后一项
我的JavaScript代码似乎有问题。我想播放一首基于点击类型的歌曲。HTML代码如下所示:Javascript SoundCloudAPI只返回列表中的最后一项,javascript,api,soundcloud,Javascript,Api,Soundcloud,我的JavaScript代码似乎有问题。我想播放一首基于点击类型的歌曲。HTML代码如下所示: <li><a href="#" class = "genre" id="dubstep"> Dubstep</a></li> 每种体裁。下面是我的JavaScript代码的一部分。问题是它只播放我的流派列表中最后一首歌。我认为这与for循环有关,但我真的不知道如何或为什么。 有人能帮我吗? 请记住,我是一个初级程序员,所以我的知识是有限的 //
<li><a href="#" class = "genre" id="dubstep"> Dubstep</a></li>
每种体裁。下面是我的JavaScript代码的一部分。问题是它只播放我的流派列表中最后一首歌。我认为这与for循环有关,但我真的不知道如何或为什么。
有人能帮我吗?
请记住,我是一个初级程序员,所以我的知识是有限的
//JavaScript文档
函数播放声音(类型){
SC.get(“/tracks”{
类型:类型,
bpm:{
起:100
}
},功能(轨道){
var random1=Math.floor(Math.random()*49);
SC.oEmbed(tracks[random1].uri,{auto_play:true},document.getElementById('target');
});
}
window.onload=函数(){
SC.initialize({
客户id:“id”
});
var menuLinks=document.getElementsByClassName('genre');
对于(var i=0;i)我还得到一个错误“Uncaught TypeError:Cannot read property'uri'of undefined”(tracks[random1].uri,{auto_play:true},document.getElementById('target');for
循环的可能重复不断地替换menuLink
的值:var menuLink=menuLinks[i]
。循环完成后,menuLink
将是最后一个值。建议的重复目标应该让您知道如何解决此问题。至于类型错误
:检查是否跟踪[random1]
甚至存在,在嵌入之前。谢谢你的时间,但我还是搞不清楚。为什么轨迹[random1]不存在?我在右上方声明了random1?你所建议的重复目标是什么意思?我不知道如何修复它,对不起……那又怎么样?轨迹存在,random1
存在,但是轨迹[random1]
可能不存在。
// JavaScript Document
function playSomeSound(genre) {
SC.get('/tracks', {
genres: genre,
bpm: {
from:100
}
}, function(tracks){
var random1 = Math.floor(Math.random() * 49);
SC.oEmbed(tracks[random1].uri, { auto_play: true }, document.getElementById('target'));
});
}
window.onload = function () {
SC.initialize({
client_id: 'ID'
});
var menuLinks = document.getElementsByClassName('genre');
for (var i = 0; i <menuLinks.length; i++) {
var menuLink = menuLinks[i];
menuLink.onclick = function(e) {
e.preventDefault();
playSomeSound(menuLink.id);
}
};
};