2010-06-28 199 views
3

我想知道是否有可能使用jQuery限制具有指定類的元素中的字符數量?限制字符jquery

例如,以下縮短類的元素只會顯示40個左右的字符。

<p class="shortened">This would be the text limited to 40 Characters</p> 

在此先感謝您的幫助。

+0

您可能會在下面找到詳細信息鏈接 http://www.technicalkeeda.com/jquery/how-to-limit-the-input-characters-using-jquery – Vicky 2012-10-17 19:22:36

回答

4

也許是一個插件?

http://plugins.jquery.com/project/TrimText

根據您的需求,這可能是易跌難。截斷簡單的文本很容易,截斷html稍微難一點,如果你想截斷html並且有一個擴展按鈕來放回文本,那就更難了。

+0

感謝馬克!如果必須,我會使用一個插件,但有興趣聽到您可能有的任何其他想法。 – 2010-06-28 18:10:06

+0

@pixelflips,我建議使用一個插件,因爲稍後你可能會發現你的文本對於一個5班的腳本來說太複雜了。 – Mark 2010-06-28 18:17:58

6

對於<input type="text" />元素,您可以使用maxlength屬性。

對於其他元素,例如<textarea>,您可以檢查元素的onkeyup事件。

$('.shortened') 
    .keyup(function(e){ 
     var $this = $(this); 
     $this.text($this.text().substring(0, max)); //Set max to 40, or whatever you want 
    }); 

對於其他非表單元素,你可以做同樣的事情,但你沒有做到這一點對一個事件處理程序。

$('.shortened') 
    .each(function(){ 
     var remainTxt = $(this).text().substring(max, $(this).text().length); 
     $(this).text($(this).text().substring(0,max)); 
    }); 

編輯:馬克的答案匹配,您可以存儲剩餘的.text()子和追加,當用戶點擊「展開」按鈕。

+0

是的,子字符串應該能夠很輕鬆地處理這個問題,但是可能在每個.value()的實例中,您的意思是'.text()'右邊的第二個片段。 – Mark 2010-06-28 19:31:02