可能重复:
Why does jQuery or a DOM method such as `getElementByID` not find the element?
为这个愚蠢的问题道歉,但我没有得到我想要的东西。 我使用以下代码来更改表的可见性。
<script type="text/javascript">
document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none";
</script>
<table class="style1" id="tblEnablePreferredZerker" >
<tr></tr>
</table>
有什么错吗?或任何其他方法来做到这一点? 或者使用jQuery可以轻松实现吗? 谢谢,
答案 0 :(得分:4)
您正尝试使用无法访问服务器的ClientID访问此表的ID,您需要在表标记中添加runat =“server”。
<table class="style1" id="tblEnablePreferredZerker" runat="server">
<tr></tr>
</table>
你是trying to access the element that is not yet available
。将您的脚本放在您尝试访问的表之后或closing body tag
之前,以便在使用之前准备好每个html元素。如果要放在html元素之前,也可以使用document.ready
jquery事件。
将脚本放在要访问的元素下面。
<table class="style1" id="tblEnablePreferredZerker" >
<tr></tr>
</table>
<script type="text/javascript">
document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none";
</script>
在关闭正文标记之前放置脚本
<!-- your thml -->
<script type="text/javascript">
document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none";
</script>
</body>
使用jQuery document.ready
<script type="text/javascript">
$(document).ready(function() {
document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none";
});
</script>
答案 1 :(得分:1)
将脚本包含在$(document).ready()
中,因为脚本运行时该元素不存在。 &安培;一定要包含jQuery。
<script type="text/javascript">
$(document).ready(function() {
$('#<%= tblEnablePreferredZerker.ClientID %>').hide();
});
</script>
<table class="style1" id="tblEnablePreferredZerker" >
<tr></tr>
</table>
答案 2 :(得分:0)
您已经标记了jQuery,因此您也可以使用它。
你可以这样使用$(document).ready()
:
/* load jQuery first! */
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none";
});
</script>
仅在加载此文档中的所有元素时才会触发。