1

在javascript中我有一个像

psi=["www.google.com","www.facebook.com","www.collegehumor.com"]

我想把它变成一个格式化的字符串,比如

var final=<a href="www.google.com" target="_blank">www.google.com</a></br>,<a href="www.facebook.com" target="_blank">www.facebook.com</a></br>,<a href="www.collegehumor.com" target="_blank">www.collegehumor.com</a></br>

所以我可以从服务器向客户端发送类似的东西

//websockets, btw...
connection.send('Search Results'+t_name+'</br>Links'+final+'</br>');

它只会呈现工作链接。

就像是

www.google.com
www.facebook.com
www.collegehumor.com

我知道有toString()。但没有运气。我不能让它创建工作链接。

我试图在for里面实现,connection.send但 Dreamweaver 说有语法错误。这就是我尝试将数组转换为格式化字符串的原因。

有什么建议吗?

谢谢

4

3 回答 3

2
var psi=["www.google.com","www.facebook.com","www.collegehumor.com"]
var str = '';
for(var i in psi)
{
    str += ',<a href="http://'+psi[i]+'" target="_blank">'+psi[i]+'</a><br>';
}
str = str.substr(1);

string.link()使用上面评论中 Zim84 提到的方法的替代版本:

var psi=["www.google.com","www.facebook.com","www.collegehumor.com"]
var str = '';
for(var i in psi)
{
    var url = psi[i];
    str += ','+url.link('http://'+url)+'<br>';
}
str = str.substr(1).replace('">','" target="_blank">');
于 2013-08-05T14:55:24.290 回答
1
var final = "";
for (var i = 0; i < psi.length; i++)
{
    var linkWithHttp = "http://" + psi[i];
    final += "<a href=\"" + linkWithHttp + "\" target=\"_blank\">" + psi[i] + "</a><br />,";
}

// Remove the last "," if you added, at least, one element
if (psi.length > 0)
{
    final = final.substring(0, final.length - 1);
}

// Now final is like what you want
// Send it using connection.send()
于 2013-08-05T14:52:24.870 回答
0

如果你愿意使用 jQuery,那简直是小菜一碟:

var final = $.map(psi, function(link) {
  return '<a href="' + link + '" target="_blank">' + link + '</a>';
}).join('<br />,');
于 2013-08-05T14:56:13.573 回答