JavaScript:document.getElementById() 返回 NULL
我对 Javascript 还很陌生,但 document.getElementById() 遇到了一个问题,它总是返回 NULL,这让我抓狂。
我的代码中有一个元素,我想获取它的坐标,以便可以移动它。
代码如下:
<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>
上面的函数 MoveIt() 总是返回 NULL
I am quite new with Javascript and I got a problem with document.getElementById() that always returns NULL, and that's driving me nuts.
I have a element in my code and I want to get its coordinates so I can move it.
Here is the code:
<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>
The above function MoveIt() always returns NULL
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
在尝试阅读页面内容之前需要先加载它们。尝试
或者如果你使用 jQuery,更喜欢
The page contents need to be loaded before trying to read them. Try
Or if you're using jQuery, prefer
您从未检查过
getElementById(...)
是否为NULL
。您检查了
getElementById(...).value
是否为NULL
,并且 div 没有“值”。另请注意,您忘记关闭
标记,该标记在您的 XHTML 中是非法的...并且出于某种原因使用了 SVG 文档类型。 SVG 不是 HTML。
目前还不清楚你想在这里做什么。
You never checked
getElementById(...)
forNULL
.You checked
getElementById(...).value
forNULL
, and divs don't have a "value".Also note that you forgot to close that
<div />
tag, which is illegal in your XHTML... and used an SVG doctype for some reason. SVG is not HTML.It's not really clear what you're trying to do here.
“arect”元素是
,而
元素没有“值”。
也摆脱那个伪造的 SVG 文档类型。
The "arect" element is a
<div>
, and<div>
elements don't have a "value".Get rid of that bogus SVG doctype too.
此代码始终返回 null 或错误。如果您想查看该对象是否存在,请执行以下操作...
此外,
div
没有value
。如果你想获取div内的html,请使用xx.innerHTML
This code always returns null or error. If you want to see if the object exists, do the following....
Also,
div
does not havevalue
. If you want to get the html inside div, usexx.innerHTML
如果按钮设置为visisble = false,那么您无法在客户端获取该按钮的ID。要隐藏按钮的使用
,
即使按钮启用为 false,我们也无法在客户端获取按钮的 ID
您可以通过 document.getElementById('<%= button1.ClientID %>') 获取按钮的 id ;
或者
如果在aspx页面中为控件设置了ClientIDMode=“Static”,则可以直接通过 document.getElementById('button1'); 获取它
或者
document.getElementById('MainContent_button1');--- 这里的 MainContent 是 contentplaceholder 的 Id,如果您有内容占位符的 id,则使用 id_button1。
if the button is set to visisble= false then you cannot get the id of that button on client side. To hide the button use
and
and even if button is enabled false we cannot get the Id of the button on client side
You can get the id of the button by document.getElementById('<%= button1.ClientID %>');
Or
if you set the ClientIDMode="Static" for the control in aspx page you can get it directly by document.getElementById('button1');
Or
document.getElementById('MainContent_button1');--- MainContent here is the Id of the contentplaceholder if you have the id of the contenet placeholder different use that id_button1.
就我而言,这是因为 jsp/html(无论什么)文件的开头有这一行:
删除它解决了我的问题。
in my case it was because of having this line at the beginning of the jsp/html(whatever) file:
removing it solved my problem.