Javascript:document.getElementById()返回NULL

pas*_*sta 12 html javascript getelementbyid

我是Javascript的新手,我遇到了一个始终返回NULL的document.getElementById()的问题,这让我疯了.

我的代码中有一个元素,我想得到它的坐标,所以我可以移动它.

这是代码:

<html>
  <head>
    <script type="text/javascript" >
      function MoveIt(obj) {
        alert(obj); // returns "Object HTMLDivElement"
        var xx = document.getElementById("arect");

        if(document.getElementById("arect").value == null) {
          alert('NULL >> ' + xx.value);
        }
        else {
          alert('NOT NULL >>' + xx.value);
        }

        posX = xx.style.scrollTop;
        posY = xx.style.left;
      }
    </script>
  </head>

  <body bgcolor="white" >
    <DIV class="background" id="MyDiv2">  
      <div id="arect" name="arect" class="transbox" onmousedown="MoveIt(this);" >
      </div>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

上面的函数MoveIt()总是返回NULL

Sai*_*ahi 27

在尝试读取页面内容之前,需要加载页面内容.尝试

window.onload = function() {
  // run your script in here
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是jQuery,请选择

$(document).ready(function() {
  ...
}
Run Code Online (Sandbox Code Playgroud)


Poi*_*nty 8

"arect"元素是a <div>,<div>元素没有"value".

摆脱伪造的SVG doctype也是如此.


Lig*_*ica 8

你从来没有检查getElementById(...)NULL.

您检查getElementById(...).valueNULL,而且div没有"值".

另请注意,您忘记关闭该<div />标记,这在您的XHTML中是非法的...并且出于某种原因使用了SVG doctype.SVG不是HTML.

你在这里尝试做什么并不是很清楚.