2009-11-24 3 views
0

나는 간단한 코드를 가지고 :jQuery를 사용하여 'a'요소의 'href'속성에서 파일 이름을 자르는 가장 좋은 방법은 무엇입니까? 예를 들어

<ul class="list"> 
    <li><a href="http://www.aaa.com/bbb/ccc/file01.pdf">Download file 01</a></li> 
    <li><a href="http://www.bbb.com/ccc/ddd/file02.pdf">Download file 02</a></li> 
</ul> 

을 나는 변수에만 파일 이름에 저장하고자 : file01.pdf 및 file02.pdf을, 내가 그들을 절단 할 수있는 방법?

많은 도움에 감사드립니다.

건배.

답변

5

사용

lastIndexofsubstring

이 줄 것이다 jQuery를

$(function() { 
    $("ul.list li a").each (function() { 
     alert ($(this).attr ("href").substring ($(this).attr ("href").lastIndexOf ('/') + 1)) 
    }); 
}); 
1
var fileNames = new Array(); 

$('.list a').each(function(i, item){ 
    fileNames.push(this.href.substring(this.href.lastIndexOf('/') + 1)) 
}); 

사용하여 앵커 태그에게 ID

var elem = document.getElementById ("anch1"); 

elem.href.substring (elem.href.lastIndexOf ('/') + 1); 

을주고 요 모든 파일 이름의 U은 배열 :이 경우에 그이없는 있지만

var arr = []; 
$("ul.list li a").each (function(){ 
    arr.push((this.href.match(/\/[^\/]+$/)[0] || '').substr(1)); 
}); 
0
var myFilename = []; 
$("ul.list li a").each(function() { 
     var href = $(this).attr('href'); 
     var idx = $(this).attr('href').lastIndexOf('/'); 
     myFilename.push((idx >= 0) ? href.substring(idx+1) : href); 
}); 
0

?search#hash 부분을 검색 한 다음 파일의 리프 이름을 얻기 위해 마지막 슬래시를 찾습니다.

이 사용 매우 쉽게 내장 대신 전체 href를 처리 pathname 같은 링크 개체의 등록 정보 :

var a= document.getElementById('link1'); // or however you decide to reference it 
var filename= a.pathname.split('/').pop(); // get last segment of path 
4

것은, 일반적으로 오프 제거 할 것 : 또 다른 방법 여기

for(var x=0; x<fileNames.length; x++) 
{ 
    // Do something with fileNames[x] 
} 
+0

IE에는 링크의 파일 이름 부분에 정확하게 'nameProp' 속성이 있습니다. http://msdn.microsoft.com/en-us/library/ms534180(VS.85,loband).aspx –

+1

흥미롭게도, 'nameProp'은 실제로'? search'와'# hash'부분을 포함합니다. 그리고'document'에 파일 이름이 아닌 제목을 반환합니다. IE DOM에 숨어있는 어둡고 기괴한 속성이 많이 있습니다! – bobince

+0

@bobince : crappity, 당신 말이 맞아요. –

0
var files = $('a[href]').map(function() { 
    return this.pathname.match(/[^\/]*$/)[0]; 
}); 

a[href] (예 : 지정된 앵커 등)하는 HREF없이 앵커 제외됩니다, pathname은 쿼리 문자열과 단편을 제거합니다 (? query = string# 단편).

그 후 files에는 파일 이름 배열 ['file01.pdf', 'file02.pdf']이 포함됩니다.

관련 문제