2016-12-09 8 views
2

list.jsファイルをインターネットからコピーして貼り付けました。それはファイルのリストを取得しています。しかし、ファイルをフィルタリングしたいので、返されるファイルはindex.htmlのファイルだけです。私はJavascriptやjQueryに慣れていませんが、最初の1〜9行の間に変更が必要になるかもしれません。どんな助けも素晴らしいだろう!ファイル(あなたの例では、おそらくKey)の名​​前をチェックする必要があり、これを達成するためにJQueryマップのフィルタリング?

function getInfoFromS3Data(xml) {  
    var files = $.map(xml.find('Contents'), function(item) {  
    item = $(item);  
    return {  
     Key: item.find('Key').text(),  
     LastModified: item.find('LastModified').text(),  
     Size: bytesToHumanReadable(item.find('Size').text()),  
     Type: 'file'  
    }  
    }); 

    var directories = $.map(xml.find('CommonPrefixes'), function(item) {  
    item = $(item);  
    return {  
     Key: item.find('Prefix').text(),  
     LastModified: '',  
     Size: '0',  
     Type: 'directory'  
    }  
    }); 

    if ($(xml.find('IsTruncated')[0]).text() == 'true') {  
    var nextMarker = $(xml.find('NextMarker')[0]).text();  
    } else {  
    var nextMarker = null;  
    } 

    return {  
    files: files,  
    directories: directories,  
    prefix: $(xml.find('Prefix')[0]).text(),  
    nextMarker: encodeURIComponent(nextMarker)  
    }  
} 
+0

'Key'はファイル名ですか? – bassxzero

答えて

1

が必要なものと一致していない場合は、ファイルがスキップされるように、オブジェクト、またはnullを返します。これを試してください:

var files = $.map(xml.find('Contents'), function(item) {  
    var item = $(item); 

    if (item.find('Key').text().toLowerCase() !== 'index.html') 
    return null; 

    return {  
    Key: item.find('Key').text(),  
    LastModified: item.find('LastModified').text(),  
    Size: bytesToHumanReadable(item.find('Size').text()),  
    Type: 'file'  
    }  
}); 
関連する問題