我在动态搜索表单上显示结果时遇到问题。 jquery的代码是:
$("#searchterm").keyup(function (e) {
if (this.value.length > 4) {
var q = $("#searchterm").val();
$('#output').text('You typed ' + $(this).val() + '.');
$.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50&callback=?',
function (data) {
var tmp = {};
if (data !== undefined && data.result.length !== 0) {
$.each(json.result,function(i,result) {
var type = result.id;
if (!tmp[type]) {
tmp[type] = [];
}
tmp[type].push(result);
alert(result.id);
});
var html = [];
$.each(tmp, function (key, item) {
html.push('<div id=' + key + '><h3 id=' + key + '>' + key + '</h3> <span>');
html.push(result.length + '</span><ul id="items">');
$.each(result, function (i, val) {
var isLiked = getItemIdxByIdFromStorage(val.id) != -1;
html.push('<li><a href="#" onClick="podcat('+"'"+val.id+"'"+')">'+val.name+'</a></li>');
});
html.push('</ul></div>');
});
$('#results').html(html.join(''));
$('h3#listings').replaceWith('<h3>Total results: </h3>');
} else {
$('#results').html('Nothing found');
}
});
} else {
$('#results').html('Please type at least 5 characters');
}
});
我正在尝试获取result.id和result.name ...请在搜索字段中输入pizza。
如果有人可以帮助我,我会非常感激。抱歉,我的jquery等级低于初学者。
另请使用我的小提琴http://jsfiddle.net/TCYyH/
答案 0 :(得分:0)
您正在从Web服务器请求JSONP
响应(由URL中的&callback=?
参数指示),而不是更传统的JSON
响应。您应该能够从这里调试代码。
更改您的请求:
$.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50&callback=?',
对此:
$.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50',
要收到JSON
回复。