(function($){ $.fn.jTruncSubstr = function(options) { var defaults = { length: 300, minTrail: 20, moreText: "more", lessText: "less", ellipsisText: "...", moreAni: 500, lessAni: 500, delimiters: "" }; var options = $.extend(defaults, options); return this.each(function() { obj = $(this); var body = obj.html(); if(body.length > options.length + options.minTrail) { var splitLocation; if(options.delimiters == ""){ splitLocation = options.length; }else{ splitLocation = body.length; $.each(options.delimiters, function(){ var pos = body.indexOf(this, options.length); if(pos > -1) splitLocation = Math.min(splitLocation, pos); }); } if(splitLocation != -1) { // truncate tip var str1 = body.substring(0, splitLocation+1); var str2 = body.substring(splitLocation+1, body.length - 1); obj.html(str1 + '' + options.ellipsisText + '' + '' + str2 + ''); obj.find('.truncate_more').css("display", "none"); // insert more link obj.append( '