这是Removing <span> 标签的后续问题,同时保持内容完整,仅使用 javascript
如果我使用 span 突出显示页面中的文本,它会将内容分解为新节点。然后,当我使用 删除突出显示跨度时replaceChild
,节点保持分离。我希望将原始文本合并回单个文本节点,而不是三个文本节点 - 突出显示开始之前的文本、之前突出显示的文本以及突出显示结束后的文本。这可能吗?
这是Removing <span> 标签的后续问题,同时保持内容完整,仅使用 javascript
如果我使用 span 突出显示页面中的文本,它会将内容分解为新节点。然后,当我使用 删除突出显示跨度时replaceChild
,节点保持分离。我希望将原始文本合并回单个文本节点,而不是三个文本节点 - 突出显示开始之前的文本、之前突出显示的文本以及突出显示结束后的文本。这可能吗?
你可以尝试类似的东西
containerElement.innerHTML = containerElement.textContent;
由于 textContent,不确定是否可以在 9 之前的 IE 上运行。
类似于 Jim 的建议,但适用于 IE:
containerElement.innerHTML = containerElement.textContent || containerElement.innerText;
或者更长的版本:
var text = containerElement.textContent || containerElement.innerText;
while (containerElement.firstChild) {
containerElement.removeChild(containerElement.firstChild);
}
containerElement.appendChild(document.createTextNode(text));
我认为第一个更简单。