文档getelementid返回null

问题描述:

我得到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

的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

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

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

#不是ID的一部分,所以你应该使用:

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

$("#toHide").hide()

这一次与#

+0

谢谢,解决了,还有一个问题,在主要问题中更新。我希望我可以编辑并添加另一个问题。 – TechFind 2011-05-31 10:06:36