我想构建一个测验,但在显示 HTML 符号时遇到问题。
例如,它显示 "
而不是“
这是完整的代码:https://codepen.io/mixereq/pen/GVdoWV
const result = JSON.parse(xhr.response);
for(let i=0; i<result.results.length; i++) {
let categoryElement = document.createElement('div');
let questionElement = document.createElement('div');
let answersElement = document.createElement('div');
categoryElement.className = 'category';
questionElement.className = 'question';
answersElement.className = 'answers';
categoryElement.innerText = result.results[i].category;
questionElement.innerText = result.results[i].question;
if(result.results[i].correct_answer == 'True') {
answersElement.innerText = result.results[i].correct_answer + result.results[i].incorrect_answers[0];
} else {
answersElement.innerText = result.results[i].incorrect_answers[0] + result.results[i].correct_answer;
}
container.appendChild(categoryElement);
container.appendChild(questionElement);
container.appendChild(answersElement);
}
最佳答案
使用 innerHTML
而不是 innerText
来设置内容。然后浏览器会将值解释为 HTML 而不是纯文本,并解析和呈现它,而不是仅仅逐字显示它。
当然,当从第 3 方 API 显示 HTML 时,应谨慎使用 - 请注意脚本注入(inject)等风险。
关于javascript - 如何修复显示 html 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57417079/