0

JSON の代わりに XML ドキュメントで fuse.js のように使用することは可能ですか? 現在、私はデータを含む XML ドキュメントしか持っていないので、JSON 用の新しいバージョンも作成しないことを望んでいます。

誰かが私ができる/すべき方向を教えてくれることを願っています。

よろしく、ニールス

4

1 に答える 1

0

自分で解決策を見つけました。JSON をhttp://kiro.me/projects/fuse.htmlに配置した例の代わりに、代わりに XML 呼び出しを使用したバージョンを次に示します:)

$(function() {

function start(books) {
var $inputSearch = $('#hero-search'),
    $results = $('#results ul'),
    $authorCheckbox = $('#value'),
    $titleCheckbox = $('#typeId'),
    $caseCheckbox = $('#case'),

    searchAuthors = true,
    searchTitles = false,
    isCaseSensitive = false,

    fuse;

function search() {

  $results.empty();
  $.each(r, function(i, val) {
        $resultShops.append('<li class="result-item"><a href="' + this.url + '" target="_blank"><span><img src="' + this.statusId + '" /></span> ' + this.value + '</a></li>');
  });
}

function createFuse() {
  var keys = [];
  if (searchAuthors) {
    keys.push('value');
  }
  if (searchTitles) {
    keys.push('typeId');
  }
  fuse = new Fuse(books, {
    keys: keys,
    caseSensitive: isCaseSensitive
  });
}

$inputSearch.on('keyup', search);

createFuse();
}



$.ajax({
type: 'GET',
dataType: 'xml',
url: 'xml-document/document.xml',
success: function(response) {
    var suggestions = [];                   
    $(response).find("searchResults").children().each(function(i, elm) {                            
        var name = $(elm).find('name').text();
        var url = $(elm).find('url').text();
        var description = $(elm).find('description').text();
        var statusId = $(elm).find('status').text();
        var typeId = $(elm).find('type').text();

        var result = {};
        result.value = name;
        result.url = url;
        result.description = description;
        result.statusId = statusId;
        result.typeId = typeId;

        suggestions.push(result);
    });
    start(suggestions);
},
error: function(response) {
    console.log('failure',response);
}
});
});
于 2013-10-28T19:35:40.710 に答える