javascript - 向 DOM 注入的 html 代码出现意外失真
问题描述
我认为这是一个奇怪的问题......也许是另一个错误!
innerHTML
我通过这样的 div插入 html :
const verbs = ['leave', 'left', 'left'];
const insertion = `${getSpans()}`;
const elem = document.getElementById("container");
elem.innerHTML = insertion;
function getSpans() {
let result = '';
for(let i = 0; i < verbs.length; i++) {
const verb = verbs[i];
if(i === 0){
result += `<tspan id="span1">${verb.trim()}</tspan>`;
result += '<tspan fill="#fcba03"> - </tspan>';
} else if(i === 1) {
result += `<tspan id="span2">${verb.trim()}</tspan>`;
result += '<tspan fill="#fcba03"> - </tspan>';
} else {
result += `<tspan id="span3">${verb.trim()}</tspan>`
}
}
return result;
}
<div id="container"></div>
在这里一切正常,正如您所见,动词之间的连字符似乎被每个单词之间的单个空格隔开。
我在我的代码中做了完全相同的事情(我无法在此处重现它,因为它由多个文件等组成)但第一个连字符似乎附加到leave
动词!!!leave
我的意思是动词后面没有空格...
这是我所说的证明:
奇怪的是,尽管我 100% 确定插入字符串innerHTML
是正确的(您可以在控制台中看到上图中的跨度),但问题还是发生了。
此外,如果我在页面中进行更新,例如放大或缩小,一切都会得到修复!
我错过了什么以及如何解决这个问题?任何意见将不胜感激...
解决方案
推荐阅读
- google-chrome-devtools - Chrome - 检查设备 - 选择元素不起作用
- c# - C#异常处理,暂时停止循环
- python - 嘿,我想用 python 向多个人发送电子邮件
- sql - 如果标识符相同,则通过列复制值
- python - 如何在 matplotlib 中获取可变颜色条?
- r - 解释异常检测 R 值
- flutter - Flutter, Dart 将句子每1个字符拆分为2个字符大小,用于flutter自定义tts项目
- excel - 选择案例前一个月
- python-3.x - 确定土地中黄色像素的数量?
- html - 通过 Selenium 处理 Google Form Dropdown