javascript - 我如何使用构造函数来编写这段代码?

标签 javascript jquery

这是关于响应式设计中多个文本中的省略号。

我使用jQuery来做到这一点,但我认为编写这段代码会更容易,但我不知道该怎么做。我需要一些建议。

       if(responsive>1200 && responsive<1919){
            $(".ellipsis-2").each(function(){
                var maxwidth=15;
                if($(this).text().length > maxwidth){
                    $(this).text($(this).text().substring(0,maxwidth));
                    $(this).html($(this).html()+'...');
                }
                console.log($(this).text().length);
            });
            $(".ellipsis-3").each(function(){
                var maxwidth=40;
                if($(this).text().length > maxwidth){
                    $(this).text($(this).text().substring(0,maxwidth));
                    $(this).html($(this).html()+'...');
                }
                console.log($(this).text().length);
            });
        }else{
            $(".ellipsis-2").each(function(){
                var maxwidth=23;
                if($(this).text().length > maxwidth){
                    $(this).text($(this).text().substring(0,maxwidth));
                    $(this).html($(this).html()+'...');
                }
                console.log($(this).text().length);
            });
            $(".ellipsis-3").each(function(){
                var maxwidth=53;
                if($(this).text().length > maxwidth){
                    $(this).text($(this).text().substring(0,maxwidth));
                    $(this).html($(this).html()+'...');
                }
                console.log($(this).text().length);
            });
        }

最佳答案

您只需要一个函数来简化代码,而不是真正的构造函数。为省略号逻辑创建一个接收要应用的元素的选择器以及最大宽度的选择器:

function applyEllipsis(selector, maxWidth){
    $(selector).each(function(){
        if($(this).text().length > maxWidth){
            $(this).text($(this).text().substring(0,maxWidth));
            $(this).html($(this).html()+'...');
        }
        console.log($(this).text().length);
    });
}

现在您可以在 if 语句中调用它,传递每种情况所需的选择器和最大宽度:

if(responsive>1200 && responsive<1919){
    applyEllipsis(".ellipsis-2",15);
    applyEllipsis(".ellipsis-3",40);
}else{
    applyEllipsis(".ellipsis-2",23);
    applyEllipsis(".ellipsis-3",53);
}

关于javascript - 我如何使用构造函数来编写这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312601/

相关文章:

javascript - 尝试对 Canvas 中的形状进行动画处理,它会显示,但不会移动

javascript - 使用新 Set 删除数组中的重复项会出错

javascript - 如何动态更改 React Bootstrap 模态的内容?

javascript - Excel 到 JSON javascript 代码?

javascript - 将多个复选框保存在变量中以便稍后显示?

javascript - 我怎样才能制作一个向上滑动以显示页面而不完全隐藏它的div?

javascript - 单击 .aspx 页面中的 h4 时隐藏/显示列表项

用户加载图像时的 jQuery 弹出对话框

javascript - jQuery AJAX 问题?或者 JS OOP 范围问题?

javascript - 无法使用ajax存储结果