Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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,我知道这听起来很简单,但我得到的是不起作用的 <style type="text/css">#graphelement{width:800px;height:300px;}</style> <div id="graphlabel2">Right Axis Label</div> <div id="graphelement"></div> <script type="text/javascript"> var g

我知道这听起来很简单,但我得到的是不起作用的

<style type="text/css">#graphelement{width:800px;height:300px;}</style>
<div id="graphlabel2">Right Axis Label</div>
<div id="graphelement"></div>

<script type="text/javascript">
var graphwidth = document.getElementById('graphelement').style.width;
document.getElementById('graphlabel2').style.width = graphwidth;
</script>
#图形元素{宽度:800px;高度:300px;}
右轴标签
var graphwidth=document.getElementById('grapheElement').style.width;
document.getElementById('graphlabel2')。style.width=graphwidth;
我的问题是“graphwidth”总是空的。如果我只获取元素的宽度(element.width),我会在graphwidth中得到“undefined”。上面的所有代码都在body标记中,甚至是初始样式标记


这是一个更大脚本的一部分,但如果我能从and元素中获得一个宽度并将其设置为另一个,我可以计算出其余部分。我的总体目标是:我有一个宽度以内联样式设置的元素。如果在手持设备上查看页面(即屏幕宽度小于graphwidth),则我希望将元素和关联元素的宽度设置为screen.width。但是,我似乎在检索和设置element.style.width时遇到问题。

使用
document.getElementById
,您无法获取css值,只能设置它们


我想这就是您要寻找的。

样式。元素的宽度是空的,除非您通过javascript分配它。相反,您需要的是
computedStyle
。这是一些

window.getComputedStyle(document.getElementById('grapheElement').width)

请注意,旧版本的IE使用。(似乎只有IE9+支持getComputedStyle)
document.getElementById('grapheElement').currentStyle.width

这里有一个演示如何支持这两种功能。

我认为您需要使用

.style属性用于获取直接放置在上的样式 元素。它不会根据样式表计算样式

请参阅:

我认为您可以通过媒体查询而不是JS@aurel他在css中设置宽度,如果你把css放在标题中。但通常,如果未定义,则表示该元素未加载到页面上。然而,在他的例子中,js位于元素的下方,我尝试使用内联stype,它确实可以工作,但你并不真的想要这样
var gLabel = document.getElementById("graphelement");
var style = window.getComputedStyle(gLabel , null);

document.getElementById('graphlabel2').style.width = style.getPropertyValue("height");