我正在使用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]);
});
}
答案 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]);
});
}