我想遍历一组 html 元素,在本例中为 H1s,计算字符数,如果字符数大于 140,我想截断字符并仅输出前 140 个字符,然后是省略号。我一直在通过控制台测试我的代码,到目前为止已经想出了这个。
$( "h1.evTitle" ).each(function( truncate ) {
console.log($(this).text().substring(0, 140).split(" ").slice(0, -1).join(" ") + "...");
});
这可以正常工作,但它会将省略号添加到每个字符串上,而不管长度如何。关于 if 语句仅将其应用于长度大于 140 个字符的字符串的任何想法?请记住,这将是一系列 H1,而不仅仅是其中一个。
这是我的最终代码,以防有人也想这样做。
$('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(" ")
将该数组重新变成一个字符串.