2016-09-02 60 views
0

我分頁用戶的內部,在我看來字符我有:使用SUBSTR限制元素

<li class="profile"> 
    <%= user.profile %> 
</li> 

我想限制li.profile 200個字符後面三個點'...'

下面不工作:

$(document).ready(function(){ 
    $("li.profile").each(function(){ 
     if ($(this).html().length > 200) { 
      $(this).html($(this).html().substr(0, 200)); 
      $(this).append('...'); 
     } 
    }); 
}); 

from developer tools

這是它在開發人員工具中的樣子。

CSS

li.profile { 
font-size: 14px; 
padding-bottom: 5px; 
text-align: left; 
padding-left: 5px; 
} 

回答

0

使用.text(); .html()套元件的.innerHTML,不.textContent

$(document).ready(function(){ 
    $("li.profile").each(function(){ 
     if (this.textContent.length > 200) { 
      $(this).text(function(_, text) { 
      return text.substr(0, 200).concat("..."); 
      }) 
     } 
    }); 
}); 
+0

奇怪的是,這是導致3個字符的長度,我想0-2代替0-200。 '30 ...'和''[I ...'和'I l ...' –

+0

_「奇怪的是,這導致了3個字符的長度」_你可以創建stacksnippets或jsfiddle來演示嗎? – guest271314

+0

它在jfiddle中工作,當我發表我的第一條評論時,我將代碼從200更改爲20,然後測試了不同的數字......每次它在文本開始之前就好像有14個隱形字符一樣工作。必須是'user.profile' –