假设我在一行中有一些随机的文本块。像这样Lorem ipsum dolor sit amet, consectetur adipiscing elit.
但是无论出于何种原因(包含元素的宽度设置,使用文本缩放等),在查看器的屏幕上它都显示为两行或更多行。Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
或者Lorem ipsum dolor sit
amet, consectetur
adipiscing elit.
有没有办法通过javascript找出发生换行的地方?
不管文本如何显示,$('p').text()
和$('p').html()
返回Lorem ipsum dolor sit amet, consectetur adipiscing elit.
。
最佳答案
好吧,如果您想要的东西简直太简单了,可能对您来说太没用了(如果您在段落中包含任何种类的HTML,则需要进行重大修改),然后看一下:
var para = $('p');
para.each(function(){
var current = $(this);
var text = current.text();
var words = text.split(' ');
current.text(words[0]);
var height = current.height();
for(var i = 1; i < words.length; i++){
current.text(current.text() + ' ' + words[i]);
if(current.height() > height){
height = current.height();
// (i-1) is the index of the word before the text wraps
console.log(words[i-1]);
}
}
});
它是如此的简单,以至于它可能会起作用。这样做是将文本按空格分开,然后将单词逐个单词追加到后面,注意元素高度是否增加,这表示换行。
在这里看看:http://www.jsfiddle.net/xRPYN/2/
关于javascript - 寻找换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3738490/