我希望将原始文本输入值更改为JSON值。
这是一个被搜查的类似艺术家之一。但每当我点击按钮进行搜索时,我都需要该值来替换输入值。
因此,例如,如果我搜索Metallica,下面的代码将随机选择1个相似的艺术家,然后我希望它替换最初设置的Metallica搜索。
<input id="artists" type="text"</input>
<button id="searchy">Search Now</button>
function newartist(artist) {
var url = 'http://developer.echonest.com/api/v4/artist/similar';
var args = {
format:'json',
api_key : apikey,
name: artist,
results : 5,
};
$.getJSON(url, args,
function(data) {
var artist = data.response.artists[Math.floor(Math.random()*data.response.artists.length)];
console.log(artist.name);
}
);
}
function start() {
var artist = $.trim($("#artists").val());
}
$(document).ready(function() {
$("#searchy").click(start);
});
有没有办法将原始输入值替换为新的JSON值?
任何帮助都会感激不尽,谢谢。
答案 0 :(得分:0)
听起来你想在Metallica上搜索(例如),然后从结果中随机选择一个艺术家,然后再次搜索。我认为你不想继续循环。
如果是这样,只需从成功回调中拨打newartist
,并带一个标记,表示不再这样做:
function newartist(artist, dontRepeat) {
var url = 'http://developer.echonest.com/api/v4/artist/similar';
var args = {
format:'json',
api_key : apikey,
name: artist,
results : 5,
};
$.getJSON(url, args,
function(data) {
var artist;
if (dontRepeat || data.response.artists.length === 0) {
// ...do something useful with the results
} else {
// Do the second search
artist = data.response.artists[Math.floor(Math.random()*data.response.artists.length)];
newartist(artist.name, true);
}
}
);
}