<body> <img src="public/img/board.png" id="img"> </body> <script> var img=document.getElementById("img"); img.style.width="100%"//这个可以; img.width="224"//这样也可以; img.setAttribute("width","100%")//也可以 img.width="100%"//为什么这样就不行了?,显示图片宽度是0 </script>
可能是你的浏览器不支持这么写吧,又或者是img标签不支持,你可以见 img标签换成table里的td标签试一下。我之前理解有误。
而且你的js写法不严谨,每一行代码最后你至少要加个分号吧,
@斯拉克: 我是注释掉测试的
@夜皇帝: 你可以按照我说的那样去试试,换个标签试一下。
尝试查看一下img.width的类型是number
console.log(typeof e.width);//number
但是翻看W3C文档发现img标签的Width和Height是支持两种写法的。
属性值
值 | 描述 |
---|---|
pixels | 以像素为单位的高度或宽度值。 |
percent | 以包含元素的百分比计的高度或宽度值。 |
所以我猜测HTML标签属性和DOM属性并不完全是一样的。
你可以这样写
img.setAttribute("width", "50%");
number类型,正解啊。
但是我试了一下,td标签,按照那种百分比的设置方法,他的第四个写法是奏效的。
没这个方法.
只有.Widch() 需要string类型.