带链接的jQuery字符串,在它们周围添加A标签。

时间:2016-06-03 12:01:28

标签: jquery twitter

我正在使用Twitter API并尝试用标签替换任何文本链接,但我只是注意到我哪里出错了。

目前我正在使用API​​为您提供链接在文本中的索引,但是当我替换第一个链接时,第二个链接不再处于相同位置,我怎么能解释这个?

到目前为止,这是我的代码:

//Replace text links with HTML links
var content_replaced = obj.text;

if ((obj.entities['urls']).length > 0) {

    $.each((obj.entities['urls']), function(i, obju) {
        var start = content_replaced.substring(0, obju['indices'][0]);
        var end = content_replaced.substring(obju['indices'][1], content_replaced.length);

        //alert('Start: ' + start + ': ' + 'End: ' + end);

        content_replaced = start + ('<a href="'+obju['expanded_url']+'">'+obju['display_url']+'</a>') + end;

        alert(content_replaced + ': ' + obju['indices'][0] +',' + obju['indices'][1]);
    });
}

1 个答案:

答案 0 :(得分:0)

如果你想避免下一个链接的索引搞砸,只需按相反的顺序遍历列表:

//Replace text links with HTML links
var content_replaced = obj.text;

if ((obj.entities['urls']).length > 0) {

    $.each((obj.entities['urls'].reverse()), function(i, obju) {
        var start = content_replaced.substring(0, obju['indices'][0]);
        var end = content_replaced.substring(obju['indices'][1], content_replaced.length);

        //alert('Start: ' + start + ': ' + 'End: ' + end);

        content_replaced = start + ('<a href="'+obju['expanded_url']+'">'+obju['display_url']+'</a>') + end;

        alert(content_replaced + ': ' + obju['indices'][0] +',' + obju['indices'][1]);
    });
}