我正试图让Twitter Typeahead + Bloodhound与Google的CSE合作。 到目前为止,我已经设法返回结果,但我无法计算出datumTokenizer。 var results = new Bloodhound({ datumTokenizer: function(data) { return Bloodhound.tokenizers.whitespace(d.value) }, queryTokenizer: Bloodhound.tokenizers.obj.whitespace, remote: { url: “http://clients1.google.com/complete/search?client=partner&hl=en&sugexp=gsnos%2Cn%3D13&gs_rn=25&gs_ri=partner&partnerid=004914516364918182382%3Ayfqw09r4qvu&types=t&ds=cse&cp=3&gs_id=15&q=%QUERY&callback=showResults&duffCallback=?”, ajax: $.ajax({type:’GET’,dataType:’jsonp’,jsonp:’duffCallback’}), filter: showResults } }); 看小提琴: http : //jsfiddle.net/thugsb/3KAjh/ 你会看到我从showResults()返回的结果是一个数组。 但是,从filter:调用showResults()似乎没有做任何事情,因为删除该行没有任何效果。 所以我不太确定发生了什么。 请注意,duffCallback是我在阅读这个问题时要做的。 如果有更好的方法来完成这项工作我就全都耳朵!