一連の html 要素 (この場合は H1s) をループして文字数をカウントし、文字数が 140 を超える場合は、文字を切り捨てて最初の 140 文字のみを出力し、その後に省略記号を出力したいと考えています。私はコンソールを介して自分のコードをテストしてきましたが、これまでのところこれを思いつきました。
$( "h1.evTitle" ).each(function( truncate ) {
console.log($(this).text().substring(0, 140).split(" ").slice(0, -1).join(" ") + "...");
});
これは正常に機能しますが、長さに関係なく、すべての文字列に省略記号が追加されます。これを 140 文字を超える長さの文字列にのみ適用すると、if ステートメントがどのようになるかについて何か考えはありますか? これは一連の H1 であり、それらの 1 つだけではないことに注意してください。
誰かがこれをやりたい場合に備えて、これが私の最終的なコードです。
$('h1').each(function () {
if ($(this).text().length>140) {
$(this).text($(this).text().substring(0, 140).split(" ").slice(0, -1).join(" ") + "...");
}
});
.split(" ")
文字列を各単語を含む配列に分割するために追加し、配列.slice(0, -1)
の最後の項目を削除していました (部分的な単語からジャンク文字を削除.join(" ")
し、その配列を再び文字列に戻すために使用しました)。 .