我有一些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时,它无法正常工作。
由于
答案 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
,因为您必须从标签中读取