0

我有一些 JS 读取 asp 标签的文本并基于它设置 div 是否可见。

 function setToLabel() {
        text = document.getElementById('add_view');
        lbl = document.getElementById('lblAddVisible');
        var isHidden = text.innerText == 'true';
        text.style.display = isHidden ? 'block' : 'none';
    }

    $(document).ready
(
     function()
     {
         setToLabel();
     }

);

问题是它只有在我明确设置 isHidden 变量时才有效。当我告诉它读取标签以获取布尔值时,它永远不会起作用。

谢谢

4

3 回答 3

2

这是因为在呈现控件时,ASP 为控件提供了与您指定的 ID 不同的 ID。如果脚本与您的 ASP 代码在同一页面上呈现,您可以添加此

lbl = document.getElementById('<%= lblAddVisible.ClientID %>');

否则,您必须将 a 添加CssClasslblAddVisible控件并按类名获取元素。此外,请确保您使用的是正确的元素,您需要从中读取 innerHTML。

于 2013-02-05T20:00:32.797 回答
1

如果您的 aspx 页面中有嵌套控件,则可能是您没有使用正确的 Id。尝试这个:

text = document.getElementById('<%=add_view.ClientID%>');
于 2013-02-05T20:02:23.997 回答
0
function setToLabel() {
    text = document.getElementById('add_view');
    lbl = document.getElementById('lblAddVisible');
    var isHidden = lbl .innerText;
    text.style.display = isHidden ? 'block' : 'none';
 }

 $(document).ready
 (
 function()
 {
     setToLabel();
 }

 );

而不是txt.innerText,你需要使用lbl.innerText,因为你必须从标签中读取

于 2013-02-05T20:00:15.680 回答