Javascript jQuery-替换(文本)内容 情景

Javascript jQuery-替换(文本)内容 情景,javascript,jquery,html,dom,frontend,Javascript,Jquery,Html,Dom,Frontend,我有以下HTML代码片段: <div class="container"> TEXT <p> PARAGRAPH 1 </p> <p> PARAGRAPH 2 </p> <p> PARAGRAPH 3 </p> <p> PARAGRAPH 4 </p> </div> **但是,我不能使用innerHTML,因为它返回

我有以下HTML代码片段:

<div class="container">
    TEXT
    <p> PARAGRAPH 1 </p>
    <p> PARAGRAPH 2 </p>
    <p> PARAGRAPH 3 </p>
    <p> PARAGRAPH 4 </p>
</div>
**但是,我不能使用
innerHTML
,因为它返回“
undefined
”:

**使用
replaceChild
方法也不起作用(它会在控制台日志中触发
uncaughtdomexception

**最后,使用

document.getElementsByClassName("container")[0].innerHTML
选择
中的所有HTML内容

是否有任何方法可以访问“文本”的文本内容并动态更改它

  • JSFIDLE
就像这样

应该是

document.getElementsByClassName("container")[0].childNodes[0].textContent = "New Text";

我知道这样显示未格式化的纯文本是不好的做法,但我必须处理这种情况。如果可以,我只想添加一些HTML标记,但是,在这种情况下我没有选择。使用
textContent
而不是
innerHTML
。您可以使用正则表达式来完成此操作。提示:停止使用
alert()
进行调试
console.dir()
会给出一个关于更改什么属性的强烈提示;我还应该在我的JSFIDLE中放置
console.dir
。。。感谢hintI,如果我能更改HTML文件,我会这么做;遗憾的是,我无法更改该代码(我只能使用JS/jQuery)啊,好的,2分钟后我给你一个解决方案检查更新后的答案
textContent
不应用于
设置
,而应用于
获取
文本,因为它表示节点及其所有子体的文本内容。在本例中,它作为节点
TEXT
工作,没有子节点(但规则仍然有效)。
    var textnode = document.createTextNode("THE TEXT HAS BEEN REPLACED");
    
    var element = document.getElementsByClassName("container")[0].childNodes[0];

    item.replaceChild(textnode, item);
document.getElementsByClassName("container")[0].innerHTML
$(".container").html($(".container:first-child").html().replace("TEXT","TEXT CHANGED"));
document.getElementsByClassName("container")[0].childNodes[0].textContent = "New Text";