Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何切换文档元素的可见性?_Javascript_Asp.net - Fatal编程技术网

Javascript 如何切换文档元素的可见性?

Javascript 如何切换文档元素的可见性?,javascript,asp.net,Javascript,Asp.net,我的表格上有这样一个标签: <asp:Label ID="lblPwPol" runat="server" Visible="false"> A bunch of text... </asp:Label> 定义如下: function mShowToolTip(aCtrl, aArg1) { document.getElementById("lblPwPol").style.display = 'block'; retur

我的表格上有这样一个标签:

<asp:Label ID="lblPwPol" 
     runat="server"
     Visible="false">

  A bunch of text... 

</asp:Label>
定义如下:

function mShowToolTip(aCtrl, aArg1)
{
    document.getElementById("lblPwPol").style.display = 'block';
    return false;

}

function mHideToolTip()
{
    document.getElementById("lblPwPol").style.display = 'none';
    return false; 
}
加载表单时,标签不可见(正确)

单击标签时,我的JS中出现异常:

Javascript运行时错误:无法获取未定义或空引用的属性“style”

这显然意味着
document.getElementById(“lblPwPol”)
返回null

知道我做错了什么吗?我觉得这一定很愚蠢,但我对JS一无所知


我还尝试将
id=“lblPwPol”
改为
name=“lblPwPol”
,但这没有什么区别。

我认为您混淆了DOM元素(顺便说一句,它们也是XML)。看看这里如何访问像您这样的标签控件:

我认为您混淆了DOM元素(顺便说一句,它们也是XML)。在这里看一下如何访问像您这样的标签控件:

首先您应该删除标签的visible=“false”,因为您将其设置为visible false,所以它不会加载到Dom中。并保留style=“display:none” 像这样

<asp:Label ID="lblPwPol" 
 runat="server"
 Style="display:none">

  A bunch of text... 

   </asp:Label>

一堆文字。。。

首先应该删除标签的visible=“false”,因为您将其设置为visible false,所以它不会加载到Dom中。并保留style=“display:none” 像这样

<asp:Label ID="lblPwPol" 
 runat="server"
 Style="display:none">

  A bunch of text... 

   </asp:Label>

一堆文字。。。

使用asp.net控件时,在html中呈现控件时,id不同。您的
id='lblPwPol'
在html中是不同的。因此,您可以使用
document.getElementById('lblPwPol')
而不是使用
document.getElementById(''')
,您的代码应该可以正常工作。如果您尝试@Sushil的建议,您应该只使用一组引号:
document.getElementById('')
。但真正的问题是@Kris报告的问题:标签不在HTML输出中,因为
Visible=“false”
。当您使用asp.net控件时,在HTML中呈现控件时,id是不同的。您的
id='lblPwPol'
在html中是不同的。因此,您可以使用
document.getElementById('lblPwPol')
而不是使用
document.getElementById(''')
,您的代码应该可以正常工作。如果您尝试@Sushil的建议,您应该只使用一组引号:
document.getElementById('')
。但真正的问题是@Kris报告的问题:由于
Visible=“false”
,标签不在HTML输出中。