Jquery / Javascript不能设置带有包含页面html的属性innerHTML

问题描述 投票:0回答:2

我在另一页中包含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>
javascript jquery html dom
2个回答
1
投票

几个潜在的问题:首先,您的DOM元素id是“标题”,而不是“标题”。因此,您的功能应为:

function funct1() {
  document.getElementById("title").innerHTML = "Bye";
}

下一个潜在的问题是jQuery load方法是异步的,因此您需要确保在funct1回调中执行load函数以确保已首先加载DOM元素:

$('#PartDiv').load('/Part.html', funct1);

0
投票

您正在尝试访问元素,因为第二个脚本要在第一个脚本之前执行。您可以将函数作为.load()回调函数来调用。

尝试

.load()

并且元素和脚本中的id

之间也不匹配。

您的最终代码应为:

$('#PartDiv').load('/Part.html', funct1);
© www.soinside.com 2019 - 2024. All rights reserved.