Javascript 找出容器中最后一行不完整文本的长度
使用JavaScript,有没有办法找出容器(例如div)中最后一行(不完整)文本的呈现宽度 例如,假设我有以下HTML: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
<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>