2011-09-28 3 views
1

CAML 쿼리 (예 : http://www.domain.com/site/files/doc1.pdf,http://www.domain.com/site/files/doc2.pdf)에서 가져온 URL 배열이 있습니다. 배열은 쿼리에 따라 여러 개의 쉼표로 구분 된 URL을 가질 수 있습니다. 내가해야 할 일은 내 머리를 감쌀 수 없다는 것입니다. URL을 하나씩 가져 와서 파일 이름을 얻은 다음 <a href=http://www.domain.com/site/files/doc1.pdf>doc1</a>과 같은 DOM 요소를 만듭니다. 2D 배열이 필요한지, 아니면 내 레벨보다 약간 위에 있는지 알 수 없습니다. 배열 이름은 'filesarray'내가 당신을 수행하여 URL에서 파일 이름을 얻을 수 있다는 사실을 알고 : 그렇다 나는 꽤 잃었어요 것을에서jQuery URL에 어긋나는 - 클릭 가능한 링크로 변환

var index = filesarray.lastIndexOf("/"); 
var filename = filesarrary.substr(index); 

합니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

0

어때? (당신이 언급 한 바와 같이)

var urlArray = listOfUrls.split(","); 
var i; 
var index = 0; 
var filename = ""; 
$(urlArray).each(function(i, url){ 
     index = filesarray.lastIndexOf("/"); 
     filename = filesarrary.substr(index); 

     var elem = $('<a href="'+url+'">'+filename+'</a>'); 
     //do whatever you want with the dom element,like: 
     $("body").append(elem); 
    }); 

나는 listOfUrls이 URL을 쉼표로 구분 된 목록을 보유하고 있으리라 믿고있어.

내가 원하는 방식으로 작동하는지 알려 주거나 조금 수정할 수 있습니다.

0

이 시도 :

<div id="linksHolder"></div> 

    <script type="text/javascript"> 
     var stringOfLinks = "http://something.com/something.pdf, http://something1.com/somethingElse.doc"; 
     var arrayOfLinks = stingOfLinks.split(","); 
     var fileName = ''; 
     var index = ''; 
     for(var i=0; i<arrayOfLinks.length; i++) { 
      index = arrayOfLinks[i].lastIndexOf("/"); 
      fileName = arrayOfLinks[i].substr(index); 
      $("#linksHolder").add('<a href="'+arrayOfLinks[i]+'">'+fileName+'</a>') 
     } 
    </script> 
1
var arr = [ 
    'http://www.domain.com/site/files/doc1.pdf', 
    'http://www.domain.com/site/files/doc2.pdf', 
] 
for (i in arr) {  
    var href = arr[i]; 
    var text = arr[i].split('/').pop(); 
    $('body').wrap('<a href="'+href +'">'+text+'</a>'); //or append/prepend/html istead wrap 
} 
관련 문제