2009-10-11 32 views
1

我有一个来自twitter和im的下面的提要,使得所有链接都可点击,然后我希望那些标签内的链接可以缩短到30个字符,如果它超过30个字符,则显示。 ..经过30个字符来自文本区域的javascript限制显示链接

Twitter的饲料

我需要在这里开始学习一些真正的JavaScript http://javascript.com/java/codes/snippet/search?q=javascript+limit+chars+leading一些文字,所以不要删除此。

TO

我需要在这里从http://javascript.com/java开始学习一些真正的JavaScript ...一些文字,所以不要删除此。

只需要知道如何截断标签的内部。

编辑

链接会在整个文本区域的任何地方。

回答

1

要截断字符串,请查看my answer here中字符串的trunc-prototype方法。为了获得一个页面使用的所有链接:

var linksHere = document.getElementsByTagName('a'); 

循环通过你的链接,缩短每一个环节的innerHTML如果长度超过你想要的。喜欢的东西:

var i=-1,len = linksHere.length; 
while (++i<len){ 
    linksHere[i].innerHTML = linksHere[i].innerHTML.trunc(30); 
} 
+0

+1。尽管为了清晰起见,我会将循环内务的副作用保持在条件之外。 – PatrikAkerstrand 2009-10-12 06:18:47

0

这是我使用的一个方便的截断函数。

// Examples 
truncate('abcdefghijklmnopqrstuvwxyz'); // returns 'abcdefghijklmnopqrst...' 
truncate('hello there', 15); // returns 'hello there' 
truncate('hello there', 5, '...read more...'); // returns 'hello...read more...' 

// Truncating method 
function truncate(string, length, end) 
{ 
    if (typeof length == 'undefined') 
    { 
    length = 20; 
    } 

    if (typeof end == 'undefined') 
    { 
    end = '...'; 
    } 

    if (string == null) 
    { 
    return ''; 
    } 

    return string.substring(0, length-1)+(string.length > length ? end : ''); 
} 
+0

好的有用的功能,但IM畏惧它不是为我用,但因为我需要trancate联系,这是文字区域内,而不是截断完整文本 – Basit 2009-10-11 17:08:30