Javascript 找出容器中最后一行不完整文本的长度

Javascript 找出容器中最后一行不完整文本的长度,javascript,Javascript,使用JavaScript,有没有办法找出容器(例如div)中最后一行(不完整)文本的呈现宽度 例如,假设我有以下HTML: <div style="display: table-cell; text-align: justify"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna a

使用JavaScript,有没有办法找出容器(例如div)中最后一行(不完整)文本的呈现宽度

例如,假设我有以下HTML:

    <div style="display: table-cell; text-align: justify">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    </div>

如何从JavaScript中找出最后一行(“dolore magna aliqua.”)的渲染宽度(以像素为单位)?

这里,这可能很有用,这就是您想要的吗

入住

$(“.borded textbox”)。每个(函数(索引,元素){
$(元素)。附加(“”)
var endline=$(elem.find(“.endline”);
//var sizeOfDiv=$(“.borded textbox”).width();
var sizeOfLeftSpace=parseInt(endline.offset().left);
css('width',parseInt(endline.offset().left));
endline.addClass(“已处理”);
$(“.length”).append(sizeOfLeftSpace);
});

在这里,这可能会很有帮助,这就是你想要的吗

入住

$(“.borded textbox”)。每个(函数(索引,元素){
$(元素)。附加(“”)
var endline=$(elem.find(“.endline”);
//var sizeOfDiv=$(“.borded textbox”).width();
var sizeOfLeftSpace=parseInt(endline.offset().left);
css('width',parseInt(endline.offset().left));
endline.addClass(“已处理”);
$(“.length”).append(sizeOfLeftSpace);
});

用纯JavaScript实现aladin8848的创意,MWE

<html>
  <head>
    <meta charset="utf-8"/>
    <script>
      function lastLineLength() {
        var thisDiv = document.querySelectorAll('#this')[0];
        var tmpSpan = document.createElement( 'span' );
        thisDiv.appendChild( tmpSpan );
        var x = tmpSpan.offsetLeft;
        thisDiv.removeChild( tmpSpan );
        thisDiv.appendChild( document.createTextNode( x ) );
      }
    </script>
  </head>
  <body onload="lastLineLength()">
        <div id="this" style="display: table-cell; position: relative">
          Lorem ipsum dolor sit amet, consectetur adipiscing
          elit, sed do eiusmod tempor incididunt ut labore et
          dolore magna aliqua.
        </div>
  </body>
</html>

函数lastLineLength(){
var thisDiv=document.querySelectorAll('#this')[0];
var tmpSpan=document.createElement('span');
本分部附件(tmpSpan);
var x=tmpSpan.offsetLeft;
该部门移除儿童(tmpSpan);
thisDiv.appendChild(document.createTextNode(x));
}
Lorem ipsum dolor sit amet,Concertetur Adipising
Elite,请暂时加入劳工等
多洛雷·麦格纳·阿利夸。

用纯JavaScript实现aladin8848的创意,MWE

<html>
  <head>
    <meta charset="utf-8"/>
    <script>
      function lastLineLength() {
        var thisDiv = document.querySelectorAll('#this')[0];
        var tmpSpan = document.createElement( 'span' );
        thisDiv.appendChild( tmpSpan );
        var x = tmpSpan.offsetLeft;
        thisDiv.removeChild( tmpSpan );
        thisDiv.appendChild( document.createTextNode( x ) );
      }
    </script>
  </head>
  <body onload="lastLineLength()">
        <div id="this" style="display: table-cell; position: relative">
          Lorem ipsum dolor sit amet, consectetur adipiscing
          elit, sed do eiusmod tempor incididunt ut labore et
          dolore magna aliqua.
        </div>
  </body>
</html>

函数lastLineLength(){
var thisDiv=document.querySelectorAll('#this')[0];
var tmpSpan=document.createElement('span');
本分部附件(tmpSpan);
var x=tmpSpan.offsetLeft;
该部门移除儿童(tmpSpan);
thisDiv.appendChild(document.createTextNode(x));
}
Lorem ipsum dolor sit amet,Concertetur Adipising
Elite,请暂时加入劳工等
多洛雷·麦格纳·阿利夸。

你能告诉我们你到底想要实现什么吗?你能告诉我们你到底想要实现什么吗?这是明智的+1,因为我想增加一个跨度。但我现在仔细检查了一下,有一些错误需要修复才能正常工作。看这个。首先,应该使用
位置
而不是
偏移量
。其次,不需要从父宽度中减去。我还打了一些高尔夫。检查小提琴,看看你是否同意在短语中添加/删除字母以查看结果。似乎相反,字母越多,数字越小
endline.offset().left
本身应该可以提供文本的像素大小。@aladin8848没有问题看起来很好,是一个相当优雅的解决方案。它是智能+1,因为我想添加一个跨度。但我现在仔细检查了一下,有一些错误需要修复才能正常工作。看这个。首先,应该使用
位置
而不是
偏移量
。其次,不需要从父宽度中减去。我还打了一些高尔夫。检查小提琴,看看你是否同意在短语中添加/删除字母以查看结果。似乎相反,字母越多,数字越小
endline.offset().left
本身应该可以提供文本的大小(以像素为单位)。@aladin8848看起来没有问题,这是一个相当优雅的解决方案
<html>
  <head>
    <meta charset="utf-8"/>
    <script>
      function lastLineLength() {
        var thisDiv = document.querySelectorAll('#this')[0];
        var tmpSpan = document.createElement( 'span' );
        thisDiv.appendChild( tmpSpan );
        var x = tmpSpan.offsetLeft;
        thisDiv.removeChild( tmpSpan );
        thisDiv.appendChild( document.createTextNode( x ) );
      }
    </script>
  </head>
  <body onload="lastLineLength()">
        <div id="this" style="display: table-cell; position: relative">
          Lorem ipsum dolor sit amet, consectetur adipiscing
          elit, sed do eiusmod tempor incididunt ut labore et
          dolore magna aliqua.
        </div>
  </body>
</html>