使用“;阅读更多”;使用javascript的链接
我有一个文本,我想使用JavaScript通过“阅读更多”链接动态缩短文本。我使用以下JavaScript代码:使用“;阅读更多”;使用javascript的链接,javascript,jquery,mobile,Javascript,Jquery,Mobile,我有一个文本,我想使用JavaScript通过“阅读更多”链接动态缩短文本。我使用以下JavaScript代码: var limitDesc = -1; function ResponsiveDesc() { //var limitDesc = 100; //var isHTML = RegExp.prototype.test.bind(/(<([^>]+)>)/i); var chars = $("#ResponsiveDescription").html(); if (ch
var limitDesc = -1;
function ResponsiveDesc() {
//var limitDesc = 100;
//var isHTML = RegExp.prototype.test.bind(/(<([^>]+)>)/i);
var chars = $("#ResponsiveDescription").html();
if (chars.length > limitDesc) {
var visiblePart = $("<span> " + chars.substr(0, limitDesc - 1) + " </span>");
var dots = $("<span class='dots'>... </span>");
var hiddenPart = $("<span class='more'>" + chars.substr(limitDesc - 1) + "</span>");
var readMore = $("<span class='read-more'>More</span>");
readMore.click(function () {
$(this).prev().remove(); // remove dots
$(this).next().show(); //show hiddenPart
$(this).remove(); // remove readMore
});
$("#ResponsiveDescription").empty()
.append(visiblePart)
.append(dots)
.append(readMore)
.append(hiddenPart);
}
}
$(document).ready(function () {
if (limitDesc > 0 && $(window).width() < 500) {
ResponsiveDesc();
}
});
var limitDesc=-1;
函数ResponsiveDesc(){
//var limitDesc=100;
//var isHTML=RegExp.prototype.test.bind(/(]+>)/i);
var chars=$(“#ResponsiveDescription”).html();
如果(字符长度>限制描述){
var visiblePart=$(“”+chars.substr(0,limitDesc-1)+”);
变量点=$(“..”);
var hiddenPart=$(“”+chars.substr(limitDesc-1)+“”);
var readMore=$(“更多”);
readMore.单击(函数(){
$(this.prev().remove();//删除点
$(this).next().show();//show hiddenPart
$(this).remove();//删除readMore
});
$(“#ResponsiveDescription”).empty()
.append(可视部分)
.附加(点)
.append(readMore)
.附加(隐藏部分);
}
}
$(文档).ready(函数(){
如果(limitDesc>0&&$(窗口).width()<500){
ResponsiveDesc();
}
});
主要问题是,我不知道这个代码是如何在一个词或一个链接中间剪断文本的。解决这个问题的最好办法是什么?
我可以手动更改每个页面上的“limitDesc”变量,但当页面内容是动态的时,这是不可能的。
提前谢谢你 可以在长度限制之前的最后一个空格处拆分字符串。 您可以使用
lastIndexOf()
确定它:
为什么不使用jQuery.dotdot()?
limitDesc = chars.lastIndexOf(" ", limitDesc);