为什么以下内容对我不起作用?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
为什么以下内容对我不起作用?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Answers:
因为您的脚本在运行之前运行,所以标签存在于页面中(在DOM中)。可以将脚本放在标签之后,或者等待文档完全加载(使用OnLoad函数,例如jQuery ready()
或http://www.webreference.com/programming/javascript/onloads/)
这行不通:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
这将起作用:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
此示例(jsfiddle链接)维护顺序(先写脚本,再写标签),并使用onLoad:
<label id="lbltipAddedComment">test</label>
<script>
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
});
</script>
因为执行脚本时不会加载label元素。交换标签和脚本元素,它将起作用:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
使用 .textContent
代替。
在尝试更改标签之前,我也一直在努力更改标签的值。
如果仍不能解决问题,请尝试检查该对象,以查看可以通过将其记录到控制台来设置哪些属性,console.dir
如以下问题所示:如何将HTML元素记录为JavaScript对象?
"enter info here:"
部分:<label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
。只有.textContent
工作,没有的.innerHTML
,.innerText
或者.value
工作。(免责声明:我只检查了Chrome。)
.textContent
,@ AndrewWillems和.innerText
(虽然很适合阅读)对于我的firefox60不能用于写工作(它也清除了嵌入式输入字段,就像.innerHTML
)。因此,我不得不document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
这是使用jQuery更改标签文本的另一种方法:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
试试这个:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>