2011-09-28 50 views
1

我有一个网址的数组,我从CAML查询(如:http://www.domain.com/site/files/doc1.pdf,http://www.domain.com/site/files/doc2.pdf)。取决于查询,该数组可以有任意数量的逗号分隔的URL。我需要做的,不能包裹我的头,拿走这些URL中的每一个,获取文件名,然后以某种方式创建DOM元素,如<a href=http://www.domain.com/site/files/doc1.pdf>doc1</a>。我不知道它是否需要二维阵列或什么,但这是比我的水平高一点。数组名称是“filesarray”,我知道,你可以通过执行获得来自URL的文件名:与URL的jQuery Arrary - 转换为可点击的链接

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 
}