使用JavaScript获取div中的元素

使用JavaScript获取div中的元素,javascript,button,Javascript,Button,我想用JavaScript禁用/启用一个按钮。因为JavaScript被调用,所以在渲染Flash动画之后,按钮在执行时存在 该按钮位于层次结构中: <html><body><form#form1><div#control><asp:Button#Export1> 如何获取对该按钮的引用(以便更改btnref.disabled=true) 非常感谢你的帮助 如果它是div中唯一的按钮,那么它应该可以工作: var btnref = d

我想用JavaScript禁用/启用一个按钮。因为JavaScript被调用,所以在渲染Flash动画之后,按钮在执行时存在

该按钮位于层次结构中:

<html><body><form#form1><div#control><asp:Button#Export1>
如何获取对该按钮的引用(以便更改
btnref.disabled=true


非常感谢你的帮助

如果它是div中唯一的按钮,那么它应该可以工作:

var btnref = document.getElementById("controls").getElementsByTagName("button")[0];

您是否尝试过在文档中单击鼠标右键并选择“查看源代码”以查看代码的实际呈现方式?
asp:Button
是一个服务器控件,在渲染期间转换为输入字段。在此期间,字段的ID将与您在aspx中设置的不完全相同


您可以在服务器端使用
Export1.ClientID
来获取控件的ID。

通常按钮的
ID
在页面源代码中不会保持不变。单击HTML中的
查看源代码
,并查找该标记以查找新id。然后,您可以在类似以下内容中使用该id:

document.getElementbyId("Export1_some_unique_id")...

一个
asp:Button
呈现一个
input type=“Button”
,而不是一个
Button
,这是一个非常不必要的关于DOM的假设,也是一个查找元素的缓慢方法,当它确实有一个id时。网站的任何未来更改,甚至是一个简单的greasemonkey脚本都可能很容易破坏这种方法,例如,这个(和下一个答案)是有效的。。。我确实知道,但完全忘记了-谢谢!很高兴听你这么说。为了记录在案,我们大多数帖子都是按选票排序的,在相同的票数范围内,帖子是以随机顺序出现的,所以我们其他人无法知道当你说“下一个答案”=)时你指的是什么,如果你不想因为id不同而硬编码的话<代码>文档.getElementById(“”)将是这样做的一种方式。硬编码id可能会导致脚本中断,原因可能是用户可能认为与脚本完全无关,例如升级框架版本,在某些版本中,id的生成方式会有细微的更改。
document.getElementbyId("Export1_some_unique_id")...