我得到的标签文本正确吗

本文关键字:文本 标签 | 更新日期: 2023-09-27 17:57:54

我有一些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变量时,它才有效。当我告诉它阅读标签以获得bool时,它永远不会起作用。

感谢

我得到的标签文本正确吗

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

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

否则,您将不得不向lblAddVisible控件添加一个CssClass,并按类名获取元素。此外,请确保使用了读取innerHTML所需的正确元素。

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

text = document.getElementById('<%=add_view.ClientID%>');
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();
 }
 );

您需要使用lbl.innerText而不是txt.innerText,因为您必须从标签

中读取