Javascript getElementById ('id' ).style VS var x

标签 javascript css

使用 document.getElementById('myImg').style.width 而不是 var x = document.getElementById('myImg').style.width< 对我来说似乎很奇怪/strong> 产生不同的结果 谁能解释一下? 这是我的示例代码(下面,实际代码当然要长得多),我希望通过将 document.getElementById('myImg').style.width 存储为变量来尽可能地减少它,但是在加载页面似乎与直觉相反......

<img id="myImg" src="w3javascript.gif" style="width:100px;height:132px;">

<script>
window.onload = function myFunction()
{
var x = document.getElementById('myImg').style.width;
    var width = window.innerWidth || document.documentElement.clientWidth;
if(width >= 450){
x = "450px"
}
}
</script>

现在上面的代码产生了不同的结果(我不知道为什么......):

<img id="myImg" src="w3javascript.gif" style="width:100px;height:132px;">

<script>
window.onload = function myFunction()
{
var x = document.getElementById('myImg').style.width;
    var width = window.innerWidth || document.documentElement.clientWidth;
if(width >= 450){
document.getElementById('myImg').style.width = "450px"
}
}
</script>

最佳答案

当你这样做时:

var x = document.getElementById('myImg').style.width;
var width = window.innerWidth || document.documentElement.clientWidth;
if(width >= 450){
  x = "450px"
}

实际上,您首先将元素的宽度分配给变量 x,然后您用值“450px”覆盖 x,但您没有更改元素。

在第二个示例中,document.getElementById('myImg').style.width = "450px" 实际上设置了元素的宽度,但没有改变变量 x。

为了简化您的代码,您可以使用:

var x = document.getElementById('myImg');
var width = window.innerWidth || document.documentElement.clientWidth;
if(width >= 450){
  x.style.width = "450px"
}

关于Javascript getElementById ('id' ).style VS var x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26250368/

相关文章:

javascript - 单击按钮时执行 Ctrl+D

css - 结合 CSS 媒体查询

JavaScript 刷新而不是更改页面

javascript - 从 vuejs2 中的子组件更改父 Prop

javascript - php 在同一文件中回显警报框和 header 重定向

php - 只显示部分谷歌地图

html - 对话框内 div 的滚动问题

css - Wordpress 顶栏和我的顶栏和 IE9

javascript - 响应 "Full Div"YouTube 视频

javascript - 如何创建具有不同形状的垂直响应式左侧菜单