jQuery / Javascript - 选择段落物理行中的最后一个单词

时间:2016-07-27 08:57:47

标签: javascript jquery

我不确定这是可能的,但我想知道是否有一种方法可以定位段落中一行文本中的最后一个单词。请注意,我并未查找段落中的最后一个单词,而是查找该段落中的最后一个单词。

对于如何从这个开始,我并没有最微妙的想法,因此未能制定一个尝试。

感谢您提供的任何帮助! 标记

4 个答案:

答案 0 :(得分:1)

您可以获取p标签的文本,在出现空格时将它们分开以创建单词数组。然后定位返回数组中的最后一个元素。像这样:

var wordarray = $('p').text().split(" ");
return wordarray [wordarray.length - 1];

答案 1 :(得分:1)

我找到了一个JS库jsLineWrapDetector,它可以从DOM元素包装的文本中检索行。

var p = $("p")[0];
var lines = lineWrapDetector.getLines(p);
lines.forEach(function(line) {
  var lastword = line.split(" ").pop();
});

答案 2 :(得分:0)

您可以使用此功能:

function getLastWord(paragraph, line) {
  return paragraph.split("\n")[line].split(" ").pop();
}

Working Example

答案 3 :(得分:0)

下面的代码将找到(p标记的)每行的最后一个单词,并将所有单词扔到控制台中。 words[i - 1]breakWord是每一行的最后一个单词。希望这会有所帮助。

var breakWord
var p = $('p');

p.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();
            breakWord = words[i - 1];
            console.log(breakWord);
        }
    }

    console.log(current);
});

此代码将整个段落分成单个单词,将它们放入数组(words)中,然后检查换行符。找到换行符后,它将返回该行的最后一个单词。