Javascript setAttribute工作不正常

Javascript setAttribute工作不正常,javascript,html,setattribute,Javascript,Html,Setattribute,我对setAttribute()有问题。我搜索了互联网和这个网站,但他们没有解决我的问题。我想用javascript更改图片的宽度和高度,但它不起作用。请帮帮我 <html> <head> <meta charset="utf-8"/> <title>Width Height Changer</title> <script type="text/javascript"> functio

我对setAttribute()有问题。我搜索了互联网和这个网站,但他们没有解决我的问题。我想用javascript更改图片的宽度和高度,但它不起作用。请帮帮我

<html>
<head>
    <meta charset="utf-8"/>
    <title>Width Height Changer</title>
    <script type="text/javascript">
        function chang(){
            var wid = document.getElementById('width').value;
            var hei = document.getElementById('height').value;
            var set = document.getElementById('pic');
            if(Number(wid) && Number(hei)){
                set.setAttribute("style","width : wid");
                set.setAttribute("style","height : hei");
            }else{
                alert('Error');
            }
        }
    </script>
</head>
<body>
    <input type="text" id="width" placeholder="Enter Width"/>
    <input type="text" id="height" placeholder="Enter Height"/>
    <button onclick="chang()">OK</button><br/>
    <img src="back4.jpg" id="pic" />
</body>

宽度高度变换器
函数chang(){
var wid=document.getElementById('width')。值;
var hei=document.getElementById('height')。值;
var set=document.getElementById('pic');
if(编号(wid)和编号(hei)){
setAttribute(“样式”,“宽度:wid”);
setAttribute(“样式”,“高度:hei”);
}否则{
警报(“错误”);
}
}
好的

您的变量被视为字符串,因为它们被引用-更改为:

if(Number(wid) && Number(hei)){
    set.setAttribute("style","width :" + wid + "px");
    set.setAttribute("style","height :" + hei + "px");
} else {
您可以使用:

set.style.width = wid + "px";
set.style.height = hei + "px";

更好地使用:

set.style.width = wid +"px";
set.style.height =hei+"px";


建议进行一些更改以提高可读性。使用id=“width”和“height”很容易混淆,因为width/height也是JS/html关键字。另外,一些额外的错误检查也不会有什么坏处:

function chang(){
        var wid = document.getElementById('inputWidth').value;
        var hei = document.getElementById('inputHeight').value;
        var set = document.getElementById('pic');
        if(Number(wid) && Number(hei) && set && set.style){
           set.style.setAttribute("width", wid + "px");
           set.style.setAttribute("height",hei + "px");
        }else{
            alert('Error');
        }
    }

谢谢你的回答。我的问题已经解决,但我更喜欢使用setAttribute,因为对于我的学习来说它更好。谢谢各位
function chang(){
        var wid = document.getElementById('width').value;
        var hei = document.getElementById('height').value;
        var set = document.getElementById('pic');
        if(Number(wid) && Number(hei)){
            set.style.width = wid +"px";
            set.style.height =hei+"px";
        }else{
            alert('Error');
        }
    }
function chang(){
        var wid = document.getElementById('inputWidth').value;
        var hei = document.getElementById('inputHeight').value;
        var set = document.getElementById('pic');
        if(Number(wid) && Number(hei) && set && set.style){
           set.style.setAttribute("width", wid + "px");
           set.style.setAttribute("height",hei + "px");
        }else{
            alert('Error');
        }
    }