javascript - 动态添加 HTML 节点的代码适用于 Chrome 和 Safari,但不适用于 Firefox
问题描述
我正在使用以下代码将节点动态添加到 html 文档:
HTML:
<section>
<div class="labelDiv ____ labelDivTextNeighborhoodTips">
<div class="filterDiv publicTransportationTips filterDivTextNeighborhoodTips">
<input type="text" name="publicTransportationTips"></input>
<span>1.</span>
</div>
</div>
<section>
Javascript:
const squareAddButton = document.getElementsByClassName('cls-1')[0];
const svgTips = document.getElementById('Layer_2');
const labelDivsTips = document.getElementsByClassName('labelDivTextNeighborhoodTips');
function addButtonHover() {
squareAddButton.style.fill = '#FFCCCC';
}
function addButtonMouseout() {
squareAddButton.style.fill = 'none'
}
function clickAddButton() {
var lastLabelDiv = labelDivsTips[labelDivsTips.length - 2];
var lastFilterDiv = lastLabelDiv.children[0];
let spanNumber = parseInt(lastFilterDiv.children[1].innerHTML) + 1;
if(spanNumber <=5){
spanNumber =spanNumber.toString() +'.'
var parentElement = lastLabelDiv.parentNode
var labelDiv = document.createElement('div');
labelDiv.setAttribute('class', 'labelDiv ____ labelDivTextNeighborhoodTips show');
var filterDiv = document.createElement('div');
filterDiv.setAttribute('class', "filterDiv publicTransportationTips filterDivTextNeighborhoodTips");
var input = document.createElement('input');
input.setAttribute('type', "text");
input.setAttribute('name', "publicTransportationTips");
var span = document.createElement('span');
var textos = document.createTextNode(spanNumber);
span.appendChild(textos);
filterDiv.appendChild(input);
filterDiv.appendChild(span);
labelDiv.appendChild(filterDiv)
parentElement.insertBefore(labelDiv, lastLabelDiv.nextSibling);
}
}
svgTips.addEventListener('mouseover', addButtonHover);
svgTips.addEventListener('mouseout', addButtonMouseout);
svgTips.addEventListener('click', clickAddButton)
此代码在 Google Chrome 和 Safari 中完美运行,但在 Firefox 中,当单击按钮时span
,倒数第二个元素内的文本节点div
神秘地消失了。
解决方案
推荐阅读
- java - 升级到 WL 12C 和 Java 1.8 后的 JAVA 时间相关挑战
- reactjs - Codesandbox.io React 项目中的代理“localhost”
- java - 需要代理身份验证,改造
- neo4j - neo4j的父节点实体中如何查询子节点?
- python - 需要知道访问我的回复表的方式吗?
- html - HTML标签和css“字体样式:斜体”有什么区别?
- c# - C#如何使用参数过滤报表查看器
- java - Couchbase N1ql 查询在 Java 中急切地获取
- java - 无效的简单日期格式 + InputMisMatch
- azure - FTP 未通过 Azure Webjobs 连接