-1

javascript を使用して div の幅にアクセスしようとしましたが、設定に関係なく毎回 NaN が出力されます。私は JavaScript を初めて使用します。コードの何が問題になっていますか?

    <html>
    <head>
        <title>hello</title>


        <style type="text/css">

      #base
      {
        width:300px;
        height:30px;
        background-color: black;
      }

      #scr
      {
        height:30px;
        width:10px;
        background-color: red;
      }

    </style>


    <script type="text/javascript">

    var magic = function()
    {
    console.log("inside magic")
    var d = document.getElementById("scr");
    var b =  d.style.width;
    console.log(b);
    b = parseInt(b);

    console.log(b);

    }


    </script>

    </head>

    <body>

    <div id="base">
    <div id = "scr" >
    </div>
    </div>

    <br>
    <button onclick="magic()">Magic</button>


    </body>
</html>
4

3 に答える 3

1

この関数を使用してそれを行うことができます:

function getStyle(el,styleProp)
{
    var x = document.getElementById(el);
    if (x.currentStyle)
        var y = x.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    return y;
}

何が起こっているかの説明はここ にあります。関数を介して要素のスタイル プロパティにアクセスするには、要素の id を使用する必要があることに注意してください。セレクターを使用する場合は、document.getElementById() の代わりに document.querySelector() を使用します。

于 2013-02-16T21:00:42.953 に答える
0

試してみてください

d.offsetWidth 

それ以外の

d.style.width
于 2013-02-16T21:04:03.830 に答える
-1

コードd.style.widthは css で明示的に指定された幅をd.offsetWidth返し、計算された幅を返します。

于 2013-02-16T21:08:47.593 に答える