我的html代码中有这些元素:

<ul class='tabs'>
  <li data-file='home'><a>Home</a></li>
  <li data-file='contact'><a>Contact</a></li>
   ..
   ..
</ul>


我有一个<div>叫做content:

<div class='content'>
   //Homepage Content
</div>


然后,我使用Javascript使用<li>获取单击的data-file的内容,然后为其添加.html,这样它就变成了这个contact.html。

var xmlhttp = new XMLHttpRequest();

            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == XMLHttpRequest.DONE) {   // XMLHttpRequest.DONE == 4
                   if (xmlhttp.status == 200) {
                       document.getElementById('content').innerHTML = xmlhttp.responseText;

                   }
                   else if (xmlhttp.status == 400) {
                      alert('There was an error 400');
                   }
                   else {
                       alert('something else other than 200 was returned');
                   }
                }
            };

            xmlhttp.open("GET", file, true); // file is the variable 'contact.html'
            xmlhttp.send();


但是我得到一个错误:

Uncaught TypeError: Cannot set property 'innerHTML' of null
    at XMLHttpRequest.xmlhttp.onreadystatechange

最佳答案

更改HTML以使其具有具有指定ID的元素

<div id='content'>
   //Homepage Content
</div>

09-30 16:32
查看更多