2011-05-31 72 views
2

我得到document.getElementById("#toHide")爲空。如何解決這個問題?如何將此語句轉換爲jQuery?文檔getelementid返回null

HTML:

<form wicket:id="safeForm" class="clearfix" /> 
<div id="toHide" class="pb-text-align-center"> 
<img id="loadingImg" src="my image location" style="margin-left: auto; margin-right: auto;"/> 
</div> 

Java代碼串緩衝區創建JavaScript代碼:

if(flag == false){ 
    flag = true; 
    buffer.append("$('#toHide').doTimeout(1000, "); 
    buffer.append("function() { "); 
    buffer.append("$('#").append(component.getMarkupId()).append("').submit(");  
    buffer.append(");"); 
    buffer.append("$('#toHide').html('<img id=\"loadingImg\" src=\"../../img/load.gif\" style=\"margin-left: auto; margin-right: auto;\"/>'); "); 
    buffer.append("});\n"); 
    } 
    else{ 
     buffer.append("\n document.getElementById(\'#toHide\').style.display='none';\n");  
    } 
    buffer.append("</script>"); 

2)我已經宣佈標誌爲在全球範圍內假。我第一次驗證國旗並允許輸入上面顯示的區塊。但在此之後,圖像仍然顯示在下一頁。爲什麼?我需要做些什麼改變?

+1

它是* JavaScript *,而不是* Java *。 Java是完全不同的語言。我在你的問題中編輯過它(其他人似乎已經刪除了標籤)。 – 2011-05-31 09:51:24

+1

@ T.J。 Crowder,我想他正在使用Java來生成腳本。 – 2011-05-31 10:01:48

+1

@Alex:我認爲你是對的。 – 2011-05-31 10:24:10

回答

0

的jQuery,試試:

buffer.append("\n $(\'#toHide\').hide();\n"); 

代替

buffer.append("\n document.getElementById(\'#toHide\').style.display='none';\n"); 
+1

謝謝,解決了,還有一個問題,但圖像顯示在下一頁,我想隱藏圖像顯示。主要問題更新。我希望我可以編輯並添加另一個問題。 – TechFind 2011-05-31 10:08:25

+0

你如何聲明'flag'變量?如果頁面刷新,它也消失。更好的是,如果你把它作爲一個會話變量來代替。 (注意,如果它不是原始的,請發佈另一個問題。如果確實如此,請將其標記爲答案。) – 2011-05-31 10:13:45

+0

static boolean flag = false。會話將是問題,直到用戶存在,如果條件不允許進入。 – TechFind 2011-05-31 10:17:37

6

當您使用document.getElementById你不需要#

document.getElementById('toHide').style.... 
0

#不是ID的一部分,所以你應該使用:

document.getElementById('toHide')
。 至於jQuery的一部分:

$("#toHide").hide()

這一次與#

+0

謝謝,解決了,還有一個問題,在主要問題中更新。我希望我可以編輯並添加另一個問題。 – TechFind 2011-05-31 10:06:36