.replaceWholeText()方法已废弃,其他方法可以做到这一点?

时间:2017-12-11 03:43:42

标签: javascript html

文本节点方法replaceWholeText()已废弃,其他方法可以做什么?

4 个答案:

答案 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';