为什么我只返回3张图片而不是正确的金额?

时间:2014-10-14 00:09:44

标签: javascript jquery json

我目前正在尝试使用澳大利亚国家图书馆的API来查找特定搜索字词的图片。 Trove API我有以下函数,它们应该从输入表单向api发送查询并接收图像,但是我没有收到大部分图像。在一个特定的例子中,如果是搜索'sydney',我实际上只会收到3张图片。例如,this is the json,即返回。
我知道你不会熟悉这个api,但在下面的代码中,你能看到什么,这会导致它不会返回所有图像?我已经改变了一些事情来尝试找到问题,并提出一些console.log语句,但它仍然不善待我。

var availableImages = { 
                "nla": {
                    "numImages":0,
                    "url_pattern":"nla.gov.au",
                    "images":[]
                },
            };

var url_patterns = ["nla.gov.au"];

$(document).ready(function(){
    $("form#searchTrove").submit();

    $("form#searchTrove").submit(function() {

        resetImageData();

        //get input values
        var searchTerm = $("#searchTerm").val().trim();
        searchTerm = searchTerm.replace(/ /g,"%20");
        var sortBy = $("#sortBy").val();

        //create searh query
        var url = "http://api.trove.nla.gov.au/result?key=" 
        + apiKey + "&l-availability=y%2Ff&encoding=json&zone=picture" 
        + "&sortby=relevance&n=100&q=" + searchTerm + "&callback=?";

        //print JSON object
        console.log(url);

        //get the JSON information we need to display the images
        $.getJSON(url, function(data) {
            $('#output').empty();

            $.each(data.response.zone[0].records.work, processImages);

            //console.log(data);

            printImages();
        });

    });

});

function processImages(index, troveItem){
    console.log("av"+ availableImages);

        for(var i in availableImages){
    //console.log(availableImages[i].url_pattern)
            if(troveItem.identifier[0].value.indexOf(availableImages[i].url_pattern) >= 0){
                console.log("Trove URL "+troveItem.identifier[0].value+"  Pattern: "+availableImages[i]["url_pattern"]);

                availableImages[i].numImages++;
                availableImages.totalimages++;
                availableImages[i]["images"].push(troveItem.identifier[0].value);
            }
        }
}

function printImages(){
                $("#output").append("<h3>Image Search Results</h3>");
                for(var i in availableImages){
                    if(availableImages[i]["url_pattern"]=="nla.gov.au" && availableImages[i]["numImages"]>0){
                        printNLAImages();
                        console.log(availableImages);
                    }
                }
            }


function printNLAImages(){
    $("#output").append("<h3>National Library of Australia</h3><p>"
            +availableImages["nla"]["numImages"]+" images found from <a href='http://"
            +availableImages["nla"]["url_pattern"]+"'>"
            +availableImages["nla"]["url_pattern"]+"</a></p>");

    for (var i in availableImages["nla"]["images"]){
        $("#output").append("<img src='"+availableImages["nla"]["images"][i]+"-v'>");
    }
    console.log(availableImages);
}

function resetImageData(){
availableImages.totalimages = 0;
for (var i in availableImages){
    availableImages[i].numImages = 0;
    availableImages[i]["images"] = [];
}
console.log(availableImages); //displaying hee
}

0 个答案:

没有答案