我的.each字母表只返回“s”中的最后一个结果:
function foo() {
alert("it works!");
}
setTimeout(foo, 1000);
相关的javascript代码:
$('#keywordTable tr:last').after('<tr><td>' + s + '</td><td>' + val[0] + '</td><td>0</td><td>0</td><td>0</td></tr>');
以下是实时预览:http://keyworda.com
问题:(以红色圈出):http://i.imgur.com/gR46SuE.png
答案 0 :(得分:0)
您遇到多个同时发生的JSONP请求时遇到问题。每个回调函数名称必须不同,否则它们会相互覆盖,您只能看到最后一个请求的结果。您可以详细了解here或here。
要修复$.getJSON
调用,您应删除jsonp: 'suggestCallback'
位,并将回调函数作为第二个参数。回调名称由jQuery自动填充,因为您将callback=?
放在URL中。
$.getJSON("http://suggestqueries.google.com/complete/search?callback=?", {
"hl": language, // Language
"q": s, // query term
"client": "youtube" // force youtube style response, i.e. jsonp
}, function(data){
var suggestions = [];
var languageText = $("#edit-domain option:selected").text();
$('#keywordTable').show();
$.each(data[1], function(key, val) {
suggestions.push({
"value": val[0],
});
$('#keywordTable tr:last').after('<tr><td>' + s + '</td><td>' + val[0] + '</td><td>0</td><td>0</td><td>0</td></tr>');
});
});
以下是一些有效的代码:http://plnkr.co/edit/O2JKhhOziRczIMkctQc7?p=preview