假设我在一行中有一些随机的文本块。像这样
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
但是无论出于何种原因(包含元素的宽度设置,使用文本缩放等),在查看器的屏幕上它都显示为两行或更多行。
Lorem ipsum dolor sit amet,consectetur adipiscing elit.
或者
Lorem ipsum dolor sitamet, consecteturadipiscing 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/

10-09 04:43