2012-12-25 49 views
2

可能重複:
Why does jQuery or a DOM method such as `getElementByID` not find the element?無法在JavaScript中選擇表ID

道歉的愚蠢的問題,但我沒有得到我想要的東西。 我正在使用以下代碼來更改表的可見性。

<script type="text/javascript"> 
    document.getElementById('<%= tblEnablePreferredZerker.ClientID %>').style.display = "none"; 
</script> 
<table class="style1" id="tblEnablePreferredZerker" > 
    <tr></tr> 
</table> 

有沒有搞錯?或任何其他方法來做到這一點? 或者jQuery可以輕鬆實現嗎? 謝謝,

+0

你在做什麼? – ryadavilli

+0

嘗試將'script'標籤放在'table'標籤之後。 – Engineer

+0

@ryadavilli:發生錯誤。 「名稱'tblEnablePreferredZerker'在當前上下文中不存在」 – Diboliya

回答

4

您正嘗試訪問此表的ID與ClientID不是服務器可訪問的,您需要在表標記中添加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元素之前,你也可以使用jQuery的事件document.ready

將腳本放在要訪問的元素下方。

<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> 
+0

但是我使用母版頁,所以這裏沒有主體標籤? – Diboliya

+0

使用document.ready,我已經更新了我的答案,請參閱上一節。 – Adil

+0

我已經使用這個,但仍然有錯誤是:( – Diboliya

1

附上你的腳本在$(document).ready()因爲元素不存在時,前腳本運行。 &一定要包含jQuery。

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#<%= tblEnablePreferredZerker.ClientID %>').hide(); 
    }); 
</script> 
<table class="style1" id="tblEnablePreferredZerker" > 
    <tr></tr> 
</table> 
+0

@Engineer hm。我只是在不修改代碼的情況下添加'$(document).ready()' 現在編輯我的答案。謝謝 – gopi1410

+0

仍然收到錯誤 - 「名稱'tblEnablePreferredZerker'在當前上下文中不存在」 – Diboliya

+1

@RajeevDiboliya好吧,在你的asp代碼中似乎是一個錯誤,雖然我不太瞭解asp。這將工作(沒有asp): $('#tblEnablePreferredZerker')。hide();' – gopi1410

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> 

這將觸發只有當這個文件中的所有元素被加載。