首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何只更改DOM元素中的文本而不替换任何子元素

如何只更改DOM元素中的文本而不替换任何子元素
EN

Stack Overflow用户
提问于 2013-03-26 03:34:08
回答 7查看 8.5K关注 0票数 10

嗨,我有一个简单的html结构

代码语言:javascript
运行
复制
<h1>Title text <span>inner text</span></h1>

我想要的是只替换文本(标题文本)而不干扰<span>文本。这个是可能的吗?

我不想添加任何其他dom元素,我想保留这个结构。当然,我一直在这么做。

代码语言:javascript
运行
复制
$("h1").text("new text");

但是你可以猜到。将替换所有内部文本和span文本元素。

可能的解决方案:我想在一个变量中复制跨度的文本,然后将它与新的<h1>文本连接起来,但我认为可能存在一种更好、更简洁的方法。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-03-26 03:39:24

使用,您可以替换如下所示的nodeValue

代码语言:javascript
运行
复制
$("h1").contents()[0].nodeValue = "new text ";

使用jQuery.contents()替换文本节点的

票数 11
EN

Stack Overflow用户

发布于 2013-03-26 03:38:13

代码语言:javascript
运行
复制
$("h1").each(function() {
    var textNode = document.createTextNode("new text");
    this.replaceChild(textNode, this.firstChild);
});

演示: http://jsfiddle.net/FvbJa/

票数 4
EN

Stack Overflow用户

发布于 2013-03-26 04:22:19

另一个简短的jQuery解决方案:

代码语言:javascript
运行
复制
$("h1").contents().first().replaceWith("new text");

演示: http://jsfiddle.net/FvbJa/1/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15623180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档