为什么以下对我不起作用?
<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>
因为您的脚本在标签存在于页面上(在 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>
你试过.innerText
还是.value
代替.innerHTML
?
因为执行脚本时未加载标签元素。交换标签和脚本元素,它将起作用:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
使用.textContent
来代替。
我也在努力改变标签的值,直到我尝试了这个。
如果这不能解决,请尝试检查对象以查看可以通过将其记录到控制台来设置哪些属性,console.dir
如以下问题所示:如何将 HTML 元素记录为 JavaScript 对象?
使用.innerText
应该有效。
document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';