Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取文本节点的宽度_Javascript_Width - Fatal编程技术网

Javascript 获取文本节点的宽度

Javascript 获取文本节点的宽度,javascript,width,Javascript,Width,一些(JS修改的)HTML可能如下所示: <div style="width: 50px;">1,234,567</div> 1234567 如何检测文本节点是否比容器宽?灵感来自: 1,234,567 1,234,567 要检测的JavaScript(无jQuery): var divs = document.getElementsByTagName('div'); var i, div, overflowing; for (i=0; i<divs.le

一些(JS修改的)HTML可能如下所示:

<div style="width: 50px;">1,234,567</div>
1234567
如何检测文本节点是否比容器宽?

灵感来自:


1,234,567
1,234,567
要检测的JavaScript(无jQuery):

var divs = document.getElementsByTagName('div');
var i, div, overflowing;

for (i=0; i<divs.length; i++) {
    div = divs[i];
    overflowing = div.offsetWidth < div.scrollWidth;
    console.log(overflowing);
}​
var divs=document.getElementsByTagName('div');
变量i,div,溢出;

对于(i=0;我猜这将涉及到克隆文本节点,并将其放入没有固定宽度的容器中,或者如果您可以更改标记,则将文本内容包装在
中,并使用其宽度。可能的重复。只需使用
scrollWidth
而不是看起来有用的
scrollHeight
@MattBalll、 但是我在元素上没有隐藏溢出。我必须添加它吗,或者它在没有溢出设置的情况下工作吗?它在没有
溢出:隐藏
的情况下工作。哦,那太好了。如果你能回答这个问题,我很乐意接受。在Firefox中,这两种情况的结果都是
false
,正如我想象的那样。因为它是允许明显溢出,就不会有任何东西可以滚动。@amnotiam这就是为什么我把边框放进去的部分原因。使用Chrome,第一个div上的右边框穿过
6
:相应地,代码只为第一个div打印
true
。是的,我理解为什么边框在那里。我曾经让它更容易一些我的观点是Firefox给出了一个不同的结果。代码为两个div打印
false
,因为当溢出可见时,
scrollWidth
等于
offsetWidth
。我假设Firefox的结果是正确的,因为当溢出可见时内容无法滚动。
var divs = document.getElementsByTagName('div');
var i, div, overflowing;

for (i=0; i<divs.length; i++) {
    div = divs[i];
    overflowing = div.offsetWidth < div.scrollWidth;
    console.log(overflowing);
}​