这是我的html和js文件:
window.onload = function(){
SC.initialize({
client_id: "f5311a935daa5ecf6440f92183e77df1"
});
var menuLinks = document.getElementsByClassName("genre");
for (var i=0; i < menuLinks.length; i++){
var menuLink = menuLinks[i];
menuLink.onclick = function(e){
e.preventDefault();
playSounds(menuLink.innerHTML);
};
};
};
function playSounds(genre){
SC.get('/tracks', {genres: genre}, function(tracks){
var random = Math.floor(Math.random()*49);
SC.oEmbed(tracks[random].uri, {autoplay: false}, document.getElementById("content"));
});
};
<html>
<head>
<title>SoundCloud API</title>
<script type="text/javascript" src="script.js"></script>
<script src="//connect.soundcloud.com/sdk-2.0.0.js"></script>
</head>
<body>
<ul>
<li><a href="#" class="genre">electronic</a></li>
<li><a href="#" class="genre">trap</a></li>
<li><a href="#" class="genre">dubstep</a></li>
</ul>
<div id="content"></div>
</body>
</html>
所以基本上当我点击任何一个链接时,它应该搜索该特定类型,但是无论我点击哪个链接,它都只搜索dubstep。有人可以帮忙吗?
答案 0 :(得分:0)
替换
playSounds(menuLink.innerHTML);
与
playSounds(this.innerHTML);
它不起作用的原因是,当您点击链接时,它会查找menuLink
,它现在等于循环中定义的最后一个(<a>dubstep</a>
)。