带URL的jQuery数组 - 转换为可点击链接

时间:2011-09-28 19:01:39

标签: jquery arrays

我有一个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);

除此之外,我很丢失。任何帮助将不胜感激。

3 个答案:

答案 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>