使用jQuery获取特定行

使用jQuery获取特定行,第1张

使用jQuery获取特定行 jQuery.fn.line:
jQuery.fn.line = function(line) {    var dummy = this.clone().css({ top: -9999, left: -9999, position: 'absolute', width: this.width()        }).appendTo(this.parent()),        text = dummy.text().match(/S+s+/g);    var words = text.length,        lastTopOffset = 0,        lineNumber = 0,        ret = '',        found = false;    for (var i = 0; i < words; ++i) {        dummy.html( text.slice(0,i).join('') + text[i].replace(/(S)/, '<span/>') + text.slice(i+1).join('')        );        var topOffset = jQuery('span', dummy).offset().top;        if (topOffset !== lastTopOffset) { lineNumber += 1;        }        lastTopOffset = topOffset;        if (lineNumber === line) { found = true; ret += text[i];        } else { if (found) {     break; }        }    }    dummy.remove();    return ret;};
用法:
$('#someParagraph').line(3); // blah blah blah

示例: http
//jsbin.com/akave

这个怎么运作:

遍历整个元素(实际上是元素的克隆),并

<span/>
在每个单词中插入一个元素。跨度的最高偏移量已缓存-
当此偏移量更改时,我们可以假定我们在新行上。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5128212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存