1

JavaScript を使用してファイルの種類を判別する方法についてサポートが必要です。たとえば、このhtmlで。

<div class="indi-download">
<div class="pull-left">
    <h6 class="file-format">%file_display_name%</h6>
</div>
<div class="pull-right">
    <a class="download-link" href="%file_url%">Download</a>
</div>

このコード行で、

<a class="download-link" href="%file_url%">Download</a>

href="%file_url%" は、拡張子が .docx または .pdf のファイル タイプを返します。

このようなもの。

<a class="download-link" href="http://mysite.com/download/myfiles/sample.pdf">Download</a>

私の問題は、javascript を使用してファイルの種類を検出する必要があることです。.pdf の場合、クラス class="file-format" は class="pdf-file-format" に変更され、.doc の場合は class="doc-file-format" に変更されます。ファイルの拡張子によって異なります。これを行う方法について何か考えはありますか?これを行うための最良のトリックは何ですか?

これは私のサンプル出力です。ファイルのアイコンを変更したいだけなので、クラス名を変更する必要があります。

ここに画像の説明を入力

編集 私はこのようなことをしましたが、リストに複数の項目がある場合は機能しません。最初のアイテムでのみ機能します。私を助けてください。

<body onload="myFunction()">
<div class="indi-download">
<div class="pull-left">
    <h6 class="pdf-file" id="file-display-id">%file_display_name%</h6>
</div>
<div class="pull-right">
    <a class="download-link" id="download_link" href="%file_url%">Download</a>
</div>
</div>
</body>

JavaScript

<head>
<script type="text/javascript">
function myFunction()
 {
  var url = document.getElementById("download_link").href;
 var ext = url.split('.').pop();
 if(ext=='pdf'){
 var newfileclass = document.getElementById("file-display-id");
 newfileclass.className="pdf-file";
 }
 else if((ext=='docx')){
 var newfileclass = document.getElementById("file-display-id");
 newfileclass.className="pdf-file doc-file";
}
else if(ext=='zip'){
var newfileclass = document.getElementById("file-display-id");
newfileclass.className="pdf-file zip-file";
}
else{
var newfileclass = document.getElementById("file-display-id");
newfileclass.className="other-file";
}
}
</script> 
</head>
4

3 に答える 3

0

すべてのファイルに拡張子がある場合は、ファイル名を分割しextension = filename.split('.');、拡張子によってファイルの種類を決定します。

これはどう:

function changeClass(fileUrl){
    var extension = fileUrl.split('.').pop();
    if(extension.toLowerCase() == 'pdf')
    {
        return "pdf-file-format";
    }

}

$(document).ready(function(){
    $(a).live().addClass(changeClass( $(a).attr('href') ) );
});

これは一種の疑似コードであり、私はテストしていませんが、私が考えていることの要点は理解できると思います;)

また、ラクシュミが述べたように:jqueryまたはjavascriptを使用してファイルの拡張子を取得するにはどうすればよいですか?

于 2013-10-31T07:31:10.103 に答える
0

クラスは「pdf-file-format」でなければなりませんか? 自分のサイトの .pdf ファイル リンクを、CSS を介して直接検出します。

a[href$="pdf"] { /* css styles for pdf links */ }

え?

于 2013-10-31T07:38:55.877 に答える