オートコンプリートを機能させようとしています。私はこの URL を持っています。JSON を読み取る必要があります。
http://openscan.addi.dk/2.0/?action=openScan&field=phrase.title&lower=hest&limit=10&outputType=json
結果を受け取ったら、それを jquery オートコンプリートにマップしようとします。次の jquery を使用します。
<script type="text/javascript">
$(function () {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$("#search").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://openscan.addi.dk/2.0/?action=openScan&field=phrase.title&lower=hest&limit=10&outputType=json",
dataType: "jsonp",
success: function (data) {
response($.map(data.scanResponse.term, function (item) {
return {
label: item.name+' ( '+item.hitCount+')',
value: item.name
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
</script>
<h2>
Demo of autocomplete using OpenScan
</h2>
Start typing below.<br />
<input id="search" />
私の問題は、結果が以前に見た限られた量の JSON とは異なり、プロパティに $ と @ が含まれていることです。それらにインデックスを付けるにはどうすればよいですか?
編集 data.scanResponse を data.scanResponse.term に変更