我在另一页中包含html页面。在包含的页面中,我有一个带有ID的元素。我尝试从其他页面更改元素,但出现错误:Uncaught TypeError:无法将属性'innerHTML'设置为null
Part.html
<h1 id="Title">Hello</h1>
Index.html
<html>
<head>
<title></title>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="PartDiv"></div>
<script type="text/javascript">
$(document).ready(function () {
$('#PartDiv').load('/Part.html');
});
</script>
<script type="text/javascript">
function funct1() {
document.getElementById("Title").innerHTML = "Bye";
}
funct1();
</script>
</body>
</html>
几个潜在的问题:首先,您的DOM元素id
是“标题”,而不是“标题”。因此,您的功能应为:
function funct1() {
document.getElementById("title").innerHTML = "Bye";
}
下一个潜在的问题是jQuery load
方法是异步的,因此您需要确保在funct1
回调中执行load
函数以确保已首先加载DOM元素:
$('#PartDiv').load('/Part.html', funct1);
您正在尝试访问元素,因为第二个脚本要在第一个脚本之前执行。您可以将函数作为.load()
的回调函数来调用。
尝试
之间也不匹配。.load()
并且元素和脚本中的id
您的最终代码应为:
$('#PartDiv').load('/Part.html', funct1);