2009-10-11 70 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