简体   繁体   English

无法设置 null 的属性(设置“innerHTML”)

[英]Cannot set properties of null (setting 'innerHTML')

Uncaught Typeerror: Cannot set property innerHTML of null Hello, I am taking an error with innerHTML.未捕获的类型错误:无法设置 null 的属性 innerHTML 您好,我的 innerHTML 出现错误。 I tried innerText but it did not work i search some question as like me but i did not find the solution.我尝试了 innerText 但它没有用我像我一样搜索一些问题但我没有找到解决方案。 These are my html and javascript files u can check them but i didn't find any proplem.这些是我的 html 和 javascript 文件,你可以检查它们,但我没有发现任何问题。

<body>

    <div class="quiz-container">
        <div class="quiz-header">
            <h2 id="question">Question Text</h2>

            <ul>
                <li>
                    <input type="radio" id="a" name="answer">
                    <label id="a_text" for="a">Question</label>
                </li>
                <li>
                    <input type="radio" id="b" name="answer">
                    <label id="b_text" for="b">Question</label>
                </li>
                <li>
                    <input type="radio" id="c" name="answer">
                    <label id="c_text" for="c">Question</label>
                </li>
                <li>
                    <input type="radio" id="d" name="answer">
                    <label id="d_text" for="d">Question</label>
                </li>
            </ul>
        </div>

        <button id="submit">Submit</button>
    </div>

</body>
const quizData = [
    {
        question: "What is the most used programming language in 2019?",
        a: "Java",
        b: "C",
        c: "Python",
        d: "JavaScript",
        correct: "d",
    },
];

const questionEl = document.getElementById('question')
const a_text = document.getElementById('a_text')
const b_text = document.getElementById('b_text')
const c_text = document.getElementById('c_text')
const d_text = document.getElementById('d_text')
const submitBtn = document.getElementById('submit')

let currentQuiz = 0;



function loadQuiz() {

    const currentQuizData = quizData[currentQuiz]
    questionEl.innerHTML = currentQuizData.question
    a_text.innerHTML = currentQuizData.a
    b_text.innerHTML = currentQuizData.b
    c_text.innerHTML = currentQuizData.c
    d_text.innerHTML = currentQuizData.d
    currentQuiz++;
}
loadQuiz();

It's look like document.getElementById is called before the browser finish to render the page.它看起来像document.getElementById在浏览器完成渲染页面之前被调用。

You will need to run the code that go to the DOM just after the browser is ready.在浏览器准备好之后,您需要将 go 的代码运行到 DOM。

The problem is that the variable questionEl is defined as const ;问题是变量questionEl被定义为const because you are trying to change the content of the variable questionEl inside the loadQuiz() method.因为您试图在loadQuiz()方法中更改变量questionEl的内容。 Define the questionEl variable using the let or var keywords.使用letvar关键字定义questionEl变量。

 const quizData = [ { question: "What is the most used programming language in 2019?", a: "Java", b: "C", c: "Python", d: "JavaScript", correct: "d", }, ]; /* The questionEl variable is defined using the "let" keyword. */ let questionEl = document.getElementById('question') const a_text = document.getElementById('a_text') const b_text = document.getElementById('b_text') const c_text = document.getElementById('c_text') const d_text = document.getElementById('d_text') const submitBtn = document.getElementById('submit') let currentQuiz = 0; function loadQuiz() { const currentQuizData = quizData[currentQuiz] questionEl.innerHTML = currentQuizData.question a_text.innerHTML = currentQuizData.a b_text.innerHTML = currentQuizData.b c_text.innerHTML = currentQuizData.c d_text.innerHTML = currentQuizData.d currentQuiz++; } loadQuiz();
 <body> <div class="quiz-container"> <div class="quiz-header"> <h2 id="question">Question Text</h2> <ul> <li> <input type="radio" id="a" name="answer"> <label id="a_text" for="a">Question</label> </li> <li> <input type="radio" id="b" name="answer"> <label id="b_text" for="b">Question</label> </li> <li> <input type="radio" id="c" name="answer"> <label id="c_text" for="c">Question</label> </li> <li> <input type="radio" id="d" name="answer"> <label id="d_text" for="d">Question</label> </li> </ul> </div> <button id="submit">Submit</button> </div> </body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:未捕获类型错误:无法设置 null 的属性(设置“innerHTML”) - Error: Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') 未捕获(承诺中)类型错误:无法设置 null 的属性(设置“innerHTML”) - Uncaught (in promise) TypeError: Cannot set properties of null (setting 'innerHTML') 语法中的innerHTML 错误不起作用; 未捕获的类型错误:无法设置 null 的属性(设置“innerHTML”) - innerHTML error in syntax not working; Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') 如何解决此错误:无法设置 null 的属性(设置“innerHTML”) - How do I solve this error: Cannot set properties of null (setting 'innerHTML') document.getElementById 未捕获的类型错误:无法设置 null 的属性(设置“innerHTML”) - document.getElementById Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') 如何解决错误 =&gt;“无法设置 null 属性(设置&#39;innerHTML&#39;)”? - How do I solve error => "Cannot set properties of null (setting 'innerHTML')"? JS 中的错误“Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') at call.html:10:58” - Error in JS "Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') at call.html:10:58" Angular 单元测试:TypeError:无法设置 null 的属性(设置“innerHtml”)(Jasmine/Karma) - Angular Unit Testing: TypeError: cannot set properties of null (setting 'innerHtml') (Jasmine/Karma) 我试图修复所有问题,但仍然得到: TypeError: Cannot set properties of null (setting 'innerHTML') - I tryed to fix everything, but still getting : TypeError: Cannot set properties of null (setting 'innerHTML') 如何修复无法在 HTMLInputElement.loader 上设置 null 的属性(设置“innerHTML”) - How to fix Cannot set properties of null (setting 'innerHTML') at HTMLInputElement.loader
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM