文本节点方法replaceWholeText()
已废弃,其他方法可以做什么?
答案 0 :(得分:1)
您的标准 .innerHTML
可以用所需的文字替换相关文字,我相信它是 replaceWholeText()
的预期继承者:
document.getElementsByTagName('p')[0].innerHTML = 'Two';
<p>One</p>
希望这会有所帮助:)
答案 1 :(得分:0)
建议似乎是使用this。它似乎与replaceWholeText做同样的事情。
element.innerHTML = content; 删除所有元素的子节点,解析内容字符串并将结果节点指定为元素的子节点。
答案 2 :(得分:0)
您可以使用parentNode.normalize()
方法删除所有空的和相邻的TextNode(即您只有一个由wholeText
组成的TextNode),然后将合并的TextNode的textContent设置为替换值:
const para = document.querySelector('p');
para.appendChild(new Text('baz')); // would remain if not normalized
console.log('before normalizing');
console.log('textContent: ', para.firstChild.textContent);
console.log('wholeText: ',para.firstChild.wholeText);
para.normalize();
console.log('after normalizing');
console.log('textContent: ', para.firstChild.textContent);
console.log('wholeText: ',para.firstChild.wholeText);
// now we can set the wholeText to whatever we want.
para.firstChild.textContent = 'Hello world';
<p>
foo bar
</p>
答案 3 :(得分:0)
textNode 继承自 characterData (https://developer.mozilla.org/en-US/docs/Web/API/CharacterData)类,该类具有动态可写的 data 属性:
document.createTextNode('Original text').data = "replaced text';