2013-10-25 39 views
0

是否可以像使用XML文檔而不是JSON一樣使用fuse.js?因爲現在我只有一個帶有數據的XML文檔,並且希望我不能爲JSON創建新的版本。模糊搜索(fuse.js)使用XML而不是JSON

希望有人能幫助我走出我應該去哪個方向。

親切的問候, 尼爾斯

回答

0

找到了解決辦法嘍。取而代之的是放置在http://kiro.me/projects/fuse.html上的JSON示例,下面是帶有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); 
} 
}); 
});