如何缩短文本长度以自动发布

时间:2015-06-07 15:48:21

标签: javascript html css maxlength

我想缩短文章中的文字,因为我正在使用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);

但它没有做任何事......

2 个答案:

答案 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);
});