我想缩短文章中的文字,因为我正在使用IFTTT自动发布内容... 我试过这个
function truncateText(selector, maxLength) {
var element = document.querySelector(selector),
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0,maxLength) + '...';
}
return truncated;
}
document.querySelector('p').innerText = truncateText('p', 30);
但它没有做任何事......
答案 0 :(得分:0)
使用jQuery,你可以这样做:
function truncateText(selector, maxLength) {
$(selector).each(function(){
$(this).text($(this).text().substr(0,maxLength) + '...');
});
}
truncateText("p",30);
或者在纯javascript中:
function truncateText(selector, maxLength) {
var elemts = document.getElementsByTagName(selector);
for(var i = 0; i < elemts .length; i++) {
elemts[i].innerHTML = elemts[i].innerHTML.substr(0,maxLength) + '...';
}
}
答案 1 :(得分:0)
我在jsfiddle上尝试了你的代码并且它正在运行。 可能的解决方案可能是在页面加载后使用您的代码。
第一个解决方案
将script
标记移至最后,即结束</body>
标记之前。
第二个解决方案
等待页面然后使用您的代码
function truncateText(selector, maxLength) {
var element = document.querySelector(selector),
truncated = element.innerText;
if (truncated.length > maxLength) {
truncated = truncated.substr(0,maxLength) + '...';
}
return truncated;
}
document.addEventListener("DOMContentLoaded", function(event) { // After the page is loaded
document.querySelector('p').innerText = truncateText('p', 30);
});