我正确地获得标签文本吗?

时间:2013-02-05 19:55:47

标签: c# asp.net

我有一些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时,它无法正常工作。

由于

3 个答案:

答案 0 :(得分:2)

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

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

否则您必须向CssClass控件添加lblAddVisible并按类名获取元素。另外,请确保使用从中读取innerHTML所需的正确元素。

答案 1 :(得分:1)

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

text = document.getElementById('<%=add_view.ClientID%>');

答案 2 :(得分: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,因为您必须从标签中读取