[英]Truncate dynamic string javascript
我正在使用instafeed.js插件动态生成照片供稿。 我想将照片评论的长度截断为140个字符左右,但是这样做有问题。 我通过instafeed脚本生成标记,并将照片注释放入带有“ instacomments”类的div中。 我编写了另一个函数,尝试使用instacomments类截断任何元素中的字符串,但是它不起作用。
Instafeed脚本:
window.onload = function pullPhotos(){
var routeFeed = new Instafeed({
get: 'tagged',
tagName: 'Route91Harvest',
clientId: 'myID',
limit: '18',
resolution: 'low_resolution',
template: '<div class="col-md-4 instapad"><div class="instacontainer heightlimit"><div class="row"><div class="col-md-12 imageblock whitebg"><a href="{{link}}"><img src="http:{{image}}" class="img-responsive center-block" /></a></div></div><div class="row"><div class="col-md-12 whitebg"><div class="instacomments center-block">{{caption}}</div></div></div></div></div>'
});
var rtFeed = new Instafeed({
get: 'tagged',
tagName: 'Rt91Harvest',
clientId: 'myID',
limit: '18',
resolution: 'low_resolution',
template: '<div class="col-md-4 instapad"><div class="instacontainer heightlimit"><div class="row"><div class="col-md-12 imageblock whitebg"><a href="{{link}}"><img src="http:{{image}}" class="img-responsive center-block" /></a></div></div><div class="row"><div class="col-md-12 whitebg"><div class="instacomments center-block">{{caption}}</div></div></div></div></div>'
});
routeFeed.run();
rtFeed.run();
}
这是我的截断脚本,当前无法使用:
function short(length) {
var s = document.getElementsByClassName('instacomments');
var len = s.length;
for(var i = 0; i < len; i++) {
var g = s[i].innerHTML;
var x = ". . . More";
var leng = length-5;
var html = g.substring(0, leng)+"";
var allHTML = html+x;
s[i].innerHTML = allHTML;
}
}
short(140);
任何帮助是极大的赞赏!
我将截断逻辑分离出来,使其更通用
function trunc(str, max_length, suffix, margin) {
max_length = max_length | 0;
margin = margin | 0;
if (max_length <= 0 || str.length <= max_length + margin)
return str;
if (undefined === suffix || null === suffix)
suffix = '';
return str.slice(0, max_length) + suffix;
}
然后有这样的循环
function short(length) {
var s = document.getElementsByClassName('instacomments');
var i = s.length;
while (i--) {
s[i].innerHTML = trunc(s[i].innerHTML, length - 5, ". . . More", 5);
}
}
short(140);
演示函数 trunc
的参数的示例
trunc('12345' , 5, '…', 0); // "12345"
trunc('123456' , 5, '…', 0); // "12345…"
trunc('123456' , 5, '…', 1); // "123456"
trunc('1234567', 5, '…', 1); // "12345…"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.