无法在javascript中选择表ID

时间:2012-12-25 07:56:45

标签: javascript c#-4.0 asp.net-4.0

  

可能重复:
  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可以轻松实现吗? 谢谢,

3 个答案:

答案 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>

仅在加载此文档中的所有元素时才会触发。