0

テキストの長さが 40 文字に達したときに div 内のテキストの量を切り捨て、切り捨ての後に省略記号を追加しようとしています。これは私のコードです:

jQuery(document).ready(function($) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
});

問題は、文字の長さが 40 文字未満の場合でも省略記号が追加され、テキストが切り捨てられていない場合でも省略記号が追加されることです。次に、文字の長さが 40 文字未満の場合にのみ関数を実行する条件を試しましたが、役に立ちませんでした。

jQuery(document).ready(function($) {
if($(".trim").length > 40) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
}
});

何か案は?

4

1 に答える 1

4

あなたはもうすぐそこにいます!あなたの条件は、div 内のテキストの長さをチェックしていません。jQuery オブジェクトの をチェックしています。これは(セレクターによって検出された要素の数).lengthと等しくなります。1実際のテキストの長さを確認する必要があります。外側を取り除き、渡す関数の内側に長さチェックを移動します。divif.text()

$(".trim").text(function(index, text) {
    var newText = text;

    if(text.length > 40) {
        newText = text.substr(0, 40) + "...";
    }

    return newText;
});
于 2013-11-12T21:25:13.550 に答える