01/10/2018, 17:19

Lỗi Uncaught TypeError: Cannot set property 'textContent' of null

Chào mọi người!
Mình gặp lỗi khi chạy thử ví dụ của firefox như sau:

Uncaught TypeError: Cannot set property 'textContent' of null
    at main.js:3

HTML:

<!DOCTYPE html>
<html lang="">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link rel="stylesheet" type="text/css" href="styles.css">

</head>

<body>
    <script src="scripts/main.js"></script>
    <h1>Mozilla is cool</h1>
    <img src="images/firefox.jpg" alt="The firefox logo">
    <p id="demo">At Mozilla, we're a global communicate of: </p>
    <ul>
        <li>technologist</li>
        <li>thinkers</li>
        <li>builders</li>
    </ul>
    <p>working together to keep the Internet alive and accessible, so people worldwide can be informed contributors and creators of the Web. We believe this act of human collaboration across an open platform is essential to individual growth and our collective future</p>
    <p>Read the <a href="#">Mozilla Mainifesto</a>to learn even more about the values and principles that guide the pursuit of our missions.</p>


</body>

</html>

Script:

/*eslint-env browser*/
var myHeading = document.querySelector('h1');
myHeading.textContent = 'Hello world!';

Làm sao để khắc phục lỗi trên? Cảm ơn!

Hung viết 19:24 ngày 01/10/2018

Cách 1:

window.onload = function () {
  var myHeading = document.querySelector('h1');
  myHeading.textContent = 'Hello world!';
};

Cách 2:

<body>
  ...
  <p>Read the <a...</a>...</p>
  <script src="scripts/main.js"></script>
</body>
Abc viết 19:35 ngày 01/10/2018

Đã fix được! Cảm ơn!

Quân viết 19:32 ngày 01/10/2018

fix được rồi nhưng bạn có biết tại sao không, cái gốc là cần hiểu vì sao chứ không phải là giải quyết được là xong

Abc viết 19:35 ngày 01/10/2018

Mình chưa học javascript nên không hiểu cách 1 nó hoạt động ra sao? Theo tên hàm thì mình đoán rằng khi load trang thì nó sẽ thực hiện hàm đó?

Cách 2 thì sau khi load content thì mới thực hiện script. Vì ban đầu mình để script đầu tiên nên chương trình sẽ load script trước và xảy ra lỗi bởi vì không tìm thấy h1.

Mình chỉ hỏi những điều khi mình không tìm được (tìm sai cách hoặc không đúng). Mình cũng ngại khi hỏi cụ thể quá thì mọi người tại bảo sao lười biếng, không chịu google.

Cảm ơn bạn nhé! Một câu trả lời có tâm!

Quân viết 19:28 ngày 01/10/2018

Nếu bạn ham học hỏi thì cũng không ai nói gì đâu bạn, nếu đang đà hỏi thì cứ hỏi thì sẽ nhiều người chỉ cho bạn

Bài liên quan
0