制作对标签内的字符数进行限制的jquery插件

先看看效果吧(其实这个效果很简单,我只是为了以后方便使用,就弄成插件而已)

我把页面调的很小,然后标题、作者、摘要过长了,所以我使用

 


当这样不就看不到了吗?把鼠标移上去看看,显示效果如下:




教程:

1.新建一个js文件,我命名为htmlHelp.js,意为帮助使用html。

代码如下:

jQuery.extend({
    //obj:对象; c:c字体的像素,越大字数限制大,; w:对象的长度
    fixTextNO: function(obj, c, align) {




        $.each($(obj), function() {
            var w = $(this).width();
            var n = w / c;


            var content = $.trim($(this).text());
            $(this).css({ "word-wrap": "break-word", width: w, "vertical-align": top, "text-align": align });
            if (content.length > n && content.length > 4) {


                var fixContext = getfixText(content, n);




                $(this).text(fixContext.substring(0, fixContext.length - 1) + "...");


                $(this).mouseover(function() {
                    $(this).text(content);
                })


                $(this).mouseout(function() {
                    $(this).text(fixContext.substring(0, fixContext.length - 1) + "...");
                })


            }
        });
    }
});




//判断是否是中文
function isCN(str) {
    //正则表达式,中文字符 
    var pattern = /[\u4e00-\u9fa5]/g;
    //检测是否中文字符
    if (pattern.test(str)) {
        return true;
    } else {
        return false;
    }
}




//获取传入的字符串中有多少个非中文字符
function getCountOfNoCNChar(value) {
    //    var len = str.length;
    //    var c;
    //    var count = 0;
    //    for (var i = 1; i < len; i++) {
    //        c = str.substring(i - 1, i);
    //        if (!isCN(c)) {
    //            count++;
    //        }
    //    }
    //    return count;
    var length = 0;
    for (var i = 0; i < value.length; i++) {
        if (value.charCodeAt(i) > 127) {
            length++;
        }
    }
    return  value.length - length;
}




function getfixText(str, n) {
    var result = str.substring(0, n);
    var coutOfNOCN = getCountOfNoCNChar(result);
    if (coutOfNOCN > 0) {
        return result + getfixText(str.substring(n, str.length - 1), coutOfNOCN / 2);
    }
    else {
        return result;
    }


}



2.在你的html(aspx,jsp等)页面添加以下引用:

<script src="/Manage/js/jquery.js">
<script src="../js/htmlHelp.js" type="text/javascript"></script>
注意:引用该插件前必须引用jquery的核心文件jquery.js,且注意引用的路径。

3.使用的方法

js代码
 <script type="text/javascript">
        $(function() {

            $.fixTextNO($(".fixTextname"), 12, "100px");
            $.fixTextNO("fixTextParentID", 12, "100px")

        })
    </script>

4.html代码

<td align="center" valign="top" class="fixTextTitle">
      <%# Eval("Title")%>
</td>
<td align="center" valign="top"  class="fixTextAuthor">
      <%# Eval("Author")%>
</td>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值