Javascript 如何获得H1标记中文本的宽度?

Javascript 如何获得H1标记中文本的宽度?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,是的,这很可能是一个副本,但请先阅读我的问题,然后再将其标记下来 经过两个小时的搜索,我真的很沮丧。 我尝试了以下方法: •使用jQuery的$(“#this”).width()方法。它返回一个接近屏幕宽度的值 •使用JavaScript的this.offsetWidth方法。同样的情况也会发生 •将display:inline设置为h1的样式,并尝试了前两种方法。没用。返回相同的值 •设置显示:内联块并尝试。不走运 •将填充和边距设置为0。又是不想要的结果 •尝试使用innerWidth获取值

是的,这很可能是一个副本,但请先阅读我的问题,然后再将其标记下来

经过两个小时的搜索,我真的很沮丧。 我尝试了以下方法:

•使用jQuery的$(“#this”).width()方法。它返回一个接近屏幕宽度的值

•使用JavaScript的this.offsetWidth方法。同样的情况也会发生

•将display:inline设置为h1的样式,并尝试了前两种方法。没用。返回相同的值

•设置显示:内联块并尝试。不走运

•将填充和边距设置为0。又是不想要的结果

•尝试使用innerWidth获取值。还是一样

•用p切换h1并请求值。没有变化。(还有应用的样式)

目前,我正在考虑将所有标题替换为禁用的按钮,但样式相同,然而,这将非常不方便,并且会干扰页面上的动画

我试图实现的是标题的中心对齐。我知道我可以设置position:relative,但是在垂直定位航向时会有麻烦

一点HTML:

你好!
这里:如果您有display:inline块,它可以正常工作

$(函数(){
$h1=$(“h1”);
$(“#结果”).text(“宽度:”+$h1.width()+“px-内部宽度”+$h1.innerWidth()+“px”);
});
h1{
显示:内联块;
填充:10px;
}

富吧

这里:如果您有display:inline块,它可以正常工作

$(函数(){
$h1=$(“h1”);
$(“#结果”).text(“宽度:”+$h1.width()+“px-内部宽度”+$h1.innerWidth()+“px”);
});
h1{
显示:内联块;
填充:10px;
}

富吧

给我们您的html,我们会看到的$(“h1”).width(),如果h1未被操纵,则始终是其容器的100%,因为它是一个显示块元素。它类似于$(“div”).width()和所有其他显示块元素

HTML

第一个警报将是“满容器”(544用于我),第二个警报将是较小的警报(98用于我)


把你的html给我们,我们看看$(“h1”).width(),如果h1未被操纵,则始终是其容器的100%,因为它是一个显示块元素。它类似于$(“div”).width()和所有其他显示块元素

HTML

第一个警报将是“满容器”(544用于我),第二个警报将是较小的警报(98用于我)


这个问题有点让人困惑-你能提供一些html让我们看看你在用什么吗?只是好奇…为什么你需要知道文本节点的宽度,而不是它周围的“父”元素?将“显示”设置为“内联工作复制”?-@OliverRadini编辑过。这个问题有点让人困惑-你能提供一些html让我们看看你在用什么吗?只是好奇…为什么你需要知道文本节点的宽度,而不是它周围的“父”元素?将“显示”设置为“内联工作复制”?-@奥利维拉迪尼编辑。嗯。。。似乎有效。那么我的代码有什么问题?你的代码很小而且不完整。错误可能无处不在。。。试着多放一些真正的html和真正的js。它可能非常简单,比如忘记包含js库。请记住,对于大多数浏览器,一个js错误将停止所有js执行,但这仍然是一个问题:不适用于外部CSS。当我把代码像:TextHmm。。。似乎有效。那么我的代码有什么问题?你的代码很小而且不完整。错误可能无处不在。。。试着多放一些真正的html和真正的js。它可能非常简单,比如忘记包含js库。请记住,对于大多数浏览器,一个js错误将停止所有js执行,但这仍然是一个问题:不适用于外部CSS。当我把代码像:Text
<h1 id="normal">TEST</h1>
<h1 id="inline" style="display: inline">TEST2</h1>
alert( $( "#normal" ).width() );
alert( $( "#inline" ).width() );