我有一个URL数组,我从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>
。我不知道它是否需要2D数组或什么,但这比我的水平高一点。数组名称是'filesarray',我知道您可以通过执行以下操作从URL获取文件名:
var index = filesarray.lastIndexOf("/");
var filename = filesarrary.substr(index);
除此之外,我很丢失。任何帮助将不胜感激。
答案 0 :(得分: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
}
答案 1 :(得分: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列表(如你所说)。
让我知道它是否按你想要的方式工作,或者我可以稍微修改一下。
答案 2 :(得分: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>