文档getelementbyid返回null

时间:2011-05-31 09:46:30

标签: javascript jquery

我得到document.getElementById("#toHide")为空。怎么解决这个?如何将此语句转换为jquery?

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>  

在字符串缓冲区中创建JavaScript代码的Java代码:

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)我在全球范围内声明了flag = false。我正在第一次验证标志并允许输入上面显示的块。但在此之后,图像仍显示在下一页。为什么?我需要做出哪些改变?

3 个答案:

答案 0 :(得分:6)

使用document.getElementById时,您不需要#

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

答案 1 :(得分:0)

对于jQuery,请尝试:

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

而不是

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

答案 2 :(得分:0)

#不属于ID,因此您应该使用:

document.getElementById('toHide')
。 至于jquery部分:

$("#toHide").hide()

这次是#