以下のスニペットを使用して、リンクされたドキュメントのファイル サイズを計算するために jQuery を使用しています。このコードは、 a 要素の後に span 要素でラップされた情報を挿入します。代わりに a 要素の値に挿入したいと思います。これは可能ですか?
ありがとう!
js (出典: http://jshidell.com/2010/09/20/show-document-file-size-using-jquery/ )
<script>
function hdrDetails(i, elm, cl) {
cl = cl/1024; //divide content-length by 1024 (KB)
var sz = cl>1024?"MB":"KB"; //if cl is still big, set to MB
cl = cl>1024?cl/1024:cl; //if cl is still big, divide again
var len = $(elm).eq(i).text().length; //check the link's text length
if(len > 0) {
//add a file size
$(elm).eq(i).after("<span> ("+cl.toFixed(2)+" "+sz+")</span>");
}
}
$(function() {
var elm="a[href$='.pdf'],"+ //only the file types we want
"a[href$='.doc'],"+
"a[href$='.ppt'],"+
"a[href$='.xls'],"+
"a[href$='.docx'],"+ //don't forget 2007 versions
"a[href$='.pptx'],"+
"a[href$='.mht'],"+
"a[href$='.xlsx']";
$(elm).each(function(i, e) {
if (e.hostname && e.hostname == location.hostname) {
$.ajax({
type: "HEAD",
url: $(this).attr("href"),
complete: function(xhr, textStatus) {
var cl=xhr.getResponseHeader("content-length");
if(textStatus=="success") {
var cl=xhr.getResponseHeader("content-length");
hdrDetails(i, elm, cl); //call the calculation fn
}else{
$(elm).eq(i).after("<span> (file not found)</span>");
}
}
});
}
});
});
</script>
HTML の開始:
<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object]</a>
既存の js の後:
<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object]</a><span> (1.49 MB)</span>
望ましい効果:
<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object <span>(1.49 MB)</span>]</a>