获取文本段落中最后一行的宽度

And*_*tts 12 javascript css jquery

是否有可能以某种方式测量具有多个中断/返回的段落中最后一行文本的长度?

          Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
          Donec id elit non mi porta gravida at eget metus. Nulla vitae
          elit libero, a pharetra augue. Nullam id dolor id nibh
          ultricies vehicula ut id elit. Vivamus sagittis lacus vel
[here] ->|augue laoreet rutrum faucibus dolor auctor.|<- [to here]
Run Code Online (Sandbox Code Playgroud)

注意:文本中没有手动中断.它是一个包含在内部的单行文本,比方说,一个<p></p>标记.

Nel*_*zes 17

在字符串的最末端附加零宽度元素并测量其左偏移量应该足够了.

HTML

<p id="text">…text…</p>
Run Code Online (Sandbox Code Playgroud)

JS

// NOTE: This assumes LTR text!
// Using JQuery for simpler code

var $el = $("#text");
var originalText = $el.html();

$el.html(originalText + "<span id='cursor'></span>");
alert($("#cursor").offset().left + "px");
$el.html(originalText);
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://jsfiddle.net/Ca4fF/1/

  • 这是一个疯狂的、创造性的、简单的解决方案。我从来没有那样看过它,+1 (2认同)
  • 这很棒.和duuuuuh.非常简单而优雅.我认为使用.position()而不是.offset()更合适,但是这个得到了勾选标记! (2认同)